Newer
Older
Multi-StageDesignTool / docs / 2024HandoverFujii.puml
@startuml ""

class "mxGraph\nComponent"

package "application"{
    class "Application\nLanguage"

    package "actions"{
        abstract class "Abstract\nPopupAction"
    }

    package "editor"{
        class "Editor"
        abstract class "Stage"

        package "stages"{
            class "ControlFlow\nDelegationStage"
            class "ControlFlow\nDelegationCellEditor"
            '------------------------------------------
            "Stage" <|--- "ControlFlow\nDelegationStage"
            ControlFlow\nDelegationCellEditor o-up-> ControlFlow\nDelegationStage
        }

        package "views"{
            abstract class "PopupMenuBase"
            class "Navigation\nWindow"

            package "controlFlowDelegation"{
                class "ControlFlow\nDelegationStage\nPopupMenu"
                class "FlowLayerWindow"
                '------------------------------------------
                "PopupMenuBase" <|-- "ControlFlow\nDelegationStage\nPopupMenu"
                "FlowLayerWindow" o---> "ControlFlow\nDelegationStage"
            }
        }

        "Editor" o-up-> "mxGraph\nComponent"
        "Editor" o---> "Stage"

        ControlFlow\nDelegationStage\nPopupMenu o--> ControlFlow\nDelegationStage
    }
}

package "models"{
    package "controlFlowModel"{
        class "CallEdge"

        class "CallEdge\nAttribute"
        class "Composite\nCallEdgeAttribute"

        class "EventChannel\nObjectNode"
        class "ObjectNode"
        class "Stateful\nObjectNode"

        class "ObjectNode\nAttribute"

        class "CallGraph"
        class "ControlFlowGraph"

        class "ControlFlow\nDelegator"

        '------------------------------------------
        "ObjectNode" <|-- "Stateful\nObjectNode"
        "ObjectNode" <|-- "EventChannel\nObjectNode"

        "CallEdge\nAttribute" o-r-> "CallEdge"
        "CallEdge\nAttribute" o--> "ObjectNode"

        "Composite\nCallEdgeAttribute" "1 " o----> "1..*" "CallEdge\nAttribute"
        "CallEdge\nAttribute" <|---- "Composite\nCallEdgeAttribute"

        "ObjectNode\nAttribute" o--> "ObjectNode"

        "ControlFlow\nDelegator" o--> "ControlFlowGraph"

        "ControlFlowGraph" "1" o--> "2" "CallGraph"
    }
}

@enduml