Table Of Contents

Previous topic

Under the hood

Next topic

Handler

This Page

AGX Overview

This document shows an overview of package dependencies and the recent AGX configuration.

It’s a good starting point when writing generators and handlers to figure out the right place for your stuff.

AGX Package Dependencies

Legend:

digraph depslegend {
    size = "5,1";

    "nonagx" [style="filled", fillcolor="grey90", label="Non AGX", shape="record"];
    "core" [style="filled", fillcolor="pink2", label="Core", shape="record"];
    "io" [style="filled", fillcolor="palegreen3", label="IO", shape="record"];
    "transform" [style="filled", fillcolor="lightskyblue3", label="Transform", shape="record"];
    "generator" [style="filled", fillcolor="tan2", label="Generator", shape="record"];
    "flavour" [style="filled", fillcolor="yellow2", label="Flavour", shape="record"];
}

Diagram:

digraph dependencies {
    size = "9,9"

    "lxml" [style="filled", fillcolor="grey90", label="lxml", shape="Mrecord"];
    "uuid" [style="filled", fillcolor="grey90", label="uuid", shape="Mrecord"];
    "odict" [style="filled", fillcolor="grey90", label="odict", shape="Mrecord"];
    "node" [style="filled", fillcolor="grey90", label="node", shape="Mrecord"];
    "Chameleon" [style="filled", fillcolor="grey90", label="Chameleon", shape="Mrecord"];
    "Jinja2" [style="filled", fillcolor="grey90", label="Jinja2", shape="Mrecord"];

    "zope.location" [style="filled", fillcolor="grey90", label="zope.location", shape="Mrecord"];
    "zope.configuration" [style="filled", fillcolor="grey90", label="zope.configuration", shape="Mrecord"];
    "zope.lifecycleevent" [style="filled", fillcolor="grey90", label="zope.lifecycleevent", shape="Mrecord"];
    "zope.documenttemplate" [style="filled", fillcolor="grey90", label="zope.documenttemplate", shape="Mrecord"];

    "agx.core" [style="filled", fillcolor="pink2", label="agx.core", shape="Mrecord"];

    "node.ext.directory" [style="filled", fillcolor="palegreen3", label="node.ext.directory", shape="Mrecord"];
    "node.ext.python" [style="filled", fillcolor="palegreen3", label="node.ext.directory", shape="Mrecord"];
    "node.ext.template" [style="filled", fillcolor="palegreen3", label="node.ext.template", shape="Mrecord"];
    "node.ext.uml" [style="filled", fillcolor="palegreen3", label="node.ext.uml", shape="Mrecord"];
    "node.ext.xml" [style="filled", fillcolor="palegreen3", label="node.ext.xml", shape="Mrecord"];
    "node.ext.xmi" [style="filled", fillcolor="palegreen3", label="node.ext.xmi", shape="Mrecord"];
    "node.ext.zcml" [style="filled", fillcolor="palegreen3", label="node.ext.zcml", shape="Mrecord"];

    "agx.transform.uml2fs" [style="filled", fillcolor="lightskyblue3", label="agx.transform.uml2fs", shape="Mrecord"];
    "agx.transform.xmi2uml" [style="filled", fillcolor="lightskyblue3", label="agx.transform.xmi2uml", shape="Mrecord"];

    "agx.generator.uml" [style="filled", fillcolor="tan2", label="agx.generator.uml", shape="Mrecord"];
    "agx.generator.pyegg" [style="filled", fillcolor="tan2", label="agx.generator.pyegg", shape="Mrecord"];
    "agx.generator.zca" [style="filled", fillcolor="tan2", label="agx.generator.zca", shape="Mrecord"];

    "agx.flavour.dev" [style="filled", fillcolor="yellow2", label="agx.flavour.dev", shape="Mrecord"];

    "node" -> "uuid" [arrowhead="none"];
    "node" -> "odict" [arrowhead="none"];
    "node" -> "zope.location" [arrowhead="none"];
    "node" -> "zope.lifecycleevent" [arrowhead="none"];

    "agx.flavour.dev" -> "agx.generator.uml" [arrowhead="none"];
    "agx.flavour.dev" -> "agx.generator.zca" [arrowhead="none"];

    "agx.core" -> "node" [arrowhead="none"];
    "agx.core" -> "zope.configuration" [arrowhead="none"];

    "node.ext.directory" -> "node" [arrowhead="none"];

    "node.ext.python" -> "node.ext.directory" [arrowhead="none"];

    "node.ext.template" -> "node.ext.directory" [arrowhead="none"];
    "node.ext.template" -> "zope.documenttemplate" [arrowhead="none"];
    "node.ext.template" -> "Chameleon" [arrowhead="none"];
    "node.ext.template" -> "Jinja2" [arrowhead="none"];

    "node.ext.uml" -> "node" [arrowhead="none"];

    "node.ext.xmi" -> "node.ext.xml" [arrowhead="none"];

    "node.ext.xml" -> "node" [arrowhead="none"];
    "node.ext.xml" -> "lxml" [arrowhead="none"];

    "node.ext.zcml" -> "node.ext.xml" [arrowhead="none"];

    "agx.transform.xmi2uml" -> "agx.core" [arrowhead="none"];
    "agx.transform.xmi2uml" -> "node.ext.xmi" [arrowhead="none"];
    "agx.transform.xmi2uml" -> "node.ext.uml" [arrowhead="none"];

    "agx.transform.uml2fs" -> "agx.core" [arrowhead="none"];
    "agx.transform.uml2fs" -> "node.ext.directory" [arrowhead="none"];

    "agx.generator.uml" -> "agx.transform.xmi2uml" [arrowhead="none"];

    "agx.generator.pyegg" -> "node.ext.template" [arrowhead="none"];
    "agx.generator.pyegg" -> "node.ext.python" [arrowhead="none"];
    "agx.generator.pyegg" -> "node.ext.uml" [arrowhead="none"];
    "agx.generator.pyegg" -> "agx.transform.uml2fs" [arrowhead="none"];

    "agx.generator.zca" -> "agx.generator.pyegg" [arrowhead="none"];
    "agx.generator.zca" -> "node.ext.zcml" [arrowhead="none"];
}

AGX Configuration

Legend:

digraph configlegend {
    size = "5,1";

    "transform" [style="filled", fillcolor="lightskyblue3", label="Transform", shape="record"];
    "generator" [style="filled", fillcolor="pink2", label="Generator", shape="record"];
    "targethandler" [style="filled", fillcolor="tan2", label="Target handler", shape="record"];
    "handler" [style="filled", fillcolor="palegreen3", label="Handler", shape="record"];
    "scope" [style="filled", fillcolor="yellow2", label="Scope", shape="record"];
}

Diagram:

digraph agxconfig {
size = "9,18"
ratio = "fill"
ranksep = "0.2 equal"
nodesep = "0.2 equal"
rankdir = "LR"
"agx.core._api.NullTargetHandler" -> "uml2fs.connectorgenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.NullTargetHandler" -> "uml2fs.sematicsgenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.NullTargetHandler" -> "xmi2uml.profilegenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.NullTargetHandler" -> "xmi2uml.stereotypegenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.NullTargetHandler" [style="filled",fillcolor="tan2",label="agx.core._api.NullTargetHandler |",shape="Mrecord"]
"agx.core._api.TreeSyncPreperator" -> "xmi2uml.datatypedependentgenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.TreeSyncPreperator" -> "xmi2uml.hierarchygenerator" [style=dotted,arrowtail=none,dir=back]
"agx.core._api.TreeSyncPreperator" [style="filled",fillcolor="tan2",label="agx.core._api.TreeSyncPreperator |",shape="Mrecord"]
"agx.generator.pyegg.treesync.PackageSyncer" -> "uml2fs.hierarchygenerator" [style=dotted,arrowtail=none,dir=back]
"agx.generator.pyegg.treesync.PackageSyncer" [style="filled",fillcolor="tan2",label="agx.generator.pyegg.treesync.PackageSyncer |",shape="Mrecord"]
"uml2fs" -> "uml2fs.connectorgenerator" [arrowhead=none]
"uml2fs" -> "uml2fs.hierarchygenerator" [arrowhead=none]
"uml2fs" -> "uml2fs.sematicsgenerator" [arrowhead=none]
"uml2fs" [style="filled",fillcolor="lightskyblue3",label="Uml2fs |",shape="Mrecord"]
"uml2fs.connectorgenerator" -> "uml2fs.connectorgenerator.classgeneralization" [arrowhead=none]
"uml2fs.connectorgenerator" -> "uml2fs.connectorgenerator.inheritanctokenizer" [arrowhead=none]
"uml2fs.connectorgenerator" [style="filled",fillcolor="pink2",label="Connectorgenerator |",shape="Mrecord"]
"uml2fs.connectorgenerator.classgeneralization" -> "uml2fs.pyclass" [style=dotted,arrowhead=none]
"uml2fs.connectorgenerator.classgeneralization" [style="filled",fillcolor="palegreen3",label="Classgeneralization |",shape="Mrecord"]
"uml2fs.connectorgenerator.inheritanctokenizer" -> "uml2fs.generalization" [style=dotted,arrowhead=none]
"uml2fs.connectorgenerator.inheritanctokenizer" [style="filled",fillcolor="palegreen3",label="Inheritanctokenizer |",shape="Mrecord"]
"uml2fs.generalization" [style="filled",fillcolor="yellow2",label="uml2fs.generalization |",shape="Mrecord"]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.eggdirectories" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.eggdocuments" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.eggsetup" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pyattribute" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pyclass" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pydecorator" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pyfunction" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pymodule" [arrowhead=none]
"uml2fs.hierarchygenerator" -> "uml2fs.hierarchygenerator.pypackage" [arrowhead=none]
"uml2fs.hierarchygenerator" [style="filled",fillcolor="pink2",label="Hierarchygenerator |",shape="Mrecord"]
"uml2fs.hierarchygenerator.eggdirectories" -> "uml2fs.pythonegg" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.eggdirectories" [style="filled",fillcolor="palegreen3",label="Eggdirectories |",shape="Mrecord"]
"uml2fs.hierarchygenerator.eggdocuments" -> "uml2fs.pythonegg" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.eggdocuments" [style="filled",fillcolor="palegreen3",label="Eggdocuments |",shape="Mrecord"]
"uml2fs.hierarchygenerator.eggsetup" -> "uml2fs.pythonegg" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.eggsetup" [style="filled",fillcolor="palegreen3",label="Eggsetup |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pyattribute" -> "uml2fs.pyattribute" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pyattribute" [style="filled",fillcolor="palegreen3",label="Pyattribute |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pyclass" -> "uml2fs.pyclass" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pyclass" [style="filled",fillcolor="palegreen3",label="Pyclass |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pydecorator" -> "uml2fs.pydecorator" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pydecorator" [style="filled",fillcolor="palegreen3",label="Pydecorator |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pyfunction" -> "uml2fs.pyfunction" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pyfunction" [style="filled",fillcolor="palegreen3",label="Pyfunction |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pymodule" -> "uml2fs.pymodule" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pymodule" [style="filled",fillcolor="palegreen3",label="Pymodule |",shape="Mrecord"]
"uml2fs.hierarchygenerator.pypackage" -> "uml2fs.pypackage" [style=dotted,arrowhead=none]
"uml2fs.hierarchygenerator.pypackage" [style="filled",fillcolor="palegreen3",label="Pypackage |",shape="Mrecord"]
"uml2fs.pyattribute" [style="filled",fillcolor="yellow2",label="uml2fs.pyattribute |",shape="Mrecord"]
"uml2fs.pyclass" [style="filled",fillcolor="yellow2",label="uml2fs.pyclass |",shape="Mrecord"]
"uml2fs.pydecorator" [style="filled",fillcolor="yellow2",label="uml2fs.pydecorator |",shape="Mrecord"]
"uml2fs.pyfunction" [style="filled",fillcolor="yellow2",label="uml2fs.pyfunction |",shape="Mrecord"]
"uml2fs.pymodule" [style="filled",fillcolor="yellow2",label="uml2fs.pymodule |",shape="Mrecord"]
"uml2fs.pypackage" [style="filled",fillcolor="yellow2",label="uml2fs.pypackage |",shape="Mrecord"]
"uml2fs.pythonegg" [style="filled",fillcolor="yellow2",label="uml2fs.pythonegg |",shape="Mrecord"]
"uml2fs.sematicsgenerator" -> "uml2fs.sematicsgenerator.inheritanceorder" [arrowhead=none]
"uml2fs.sematicsgenerator" [style="filled",fillcolor="pink2",label="Sematicsgenerator |",shape="Mrecord"]
"uml2fs.sematicsgenerator.inheritanceorder" -> "uml2fs.pyclass" [style=dotted,arrowhead=none]
"uml2fs.sematicsgenerator.inheritanceorder" [style="filled",fillcolor="palegreen3",label="Inheritanceorder |",shape="Mrecord"]
"xmi2uml" -> "xmi2uml.datatypedependentgenerator" [arrowhead=none]
"xmi2uml" -> "xmi2uml.hierarchygenerator" [arrowhead=none]
"xmi2uml" -> "xmi2uml.profilegenerator" [arrowhead=none]
"xmi2uml" -> "xmi2uml.stereotypegenerator" [arrowhead=none]
"xmi2uml" [style="filled",fillcolor="lightskyblue3",label="Xmi2uml |",shape="Mrecord"]
"xmi2uml.association" [style="filled",fillcolor="yellow2",label="xmi2uml.association |",shape="Mrecord"]
"xmi2uml.class" [style="filled",fillcolor="yellow2",label="xmi2uml.class |",shape="Mrecord"]
"xmi2uml.datatype" [style="filled",fillcolor="yellow2",label="xmi2uml.datatype |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.anchorclass" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.anchorinterface" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.anchorpackage" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.dependency" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.generalization" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.interfacerealization" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.memberend" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.operation" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.ownedend" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.parameter" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" -> "xmi2uml.datatypedependentgenerator.property" [arrowhead=none]
"xmi2uml.datatypedependentgenerator" [style="filled",fillcolor="pink2",label="Datatypedependentgenerator |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.anchorclass" -> "xmi2uml.class" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.anchorclass" [style="filled",fillcolor="palegreen3",label="Anchorclass |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.anchorinterface" -> "xmi2uml.interface" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.anchorinterface" [style="filled",fillcolor="palegreen3",label="Anchorinterface |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.anchorpackage" -> "xmi2uml.package" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.anchorpackage" [style="filled",fillcolor="palegreen3",label="Anchorpackage |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.dependency" -> "xmi2uml.dependency" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.dependency" [style="filled",fillcolor="palegreen3",label="Dependency |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.generalization" -> "xmi2uml.generalization" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.generalization" [style="filled",fillcolor="palegreen3",label="Generalization |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.interfacerealization" -> "xmi2uml.interfacerealization" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.interfacerealization" [style="filled",fillcolor="palegreen3",label="Interfacerealization |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.memberend" -> "xmi2uml.memberend" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.memberend" [style="filled",fillcolor="palegreen3",label="Memberend |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.operation" -> "xmi2uml.operation" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.operation" [style="filled",fillcolor="palegreen3",label="Operation |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.ownedend" -> "xmi2uml.ownedend" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.ownedend" [style="filled",fillcolor="palegreen3",label="Ownedend |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.parameter" -> "xmi2uml.parameter" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.parameter" [style="filled",fillcolor="palegreen3",label="Parameter |",shape="Mrecord"]
"xmi2uml.datatypedependentgenerator.property" -> "xmi2uml.property" [style=dotted,arrowhead=none]
"xmi2uml.datatypedependentgenerator.property" [style="filled",fillcolor="palegreen3",label="Property |",shape="Mrecord"]
"xmi2uml.dependency" [style="filled",fillcolor="yellow2",label="xmi2uml.dependency |",shape="Mrecord"]
"xmi2uml.generalization" [style="filled",fillcolor="yellow2",label="xmi2uml.generalization |",shape="Mrecord"]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.association" [arrowhead=none]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.class" [arrowhead=none]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.datatype" [arrowhead=none]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.interface" [arrowhead=none]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.package" [arrowhead=none]
"xmi2uml.hierarchygenerator" -> "xmi2uml.hierarchygenerator.primitivetype" [arrowhead=none]
"xmi2uml.hierarchygenerator" [style="filled",fillcolor="pink2",label="Hierarchygenerator |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.association" -> "xmi2uml.association" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.association" [style="filled",fillcolor="palegreen3",label="Association |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.class" -> "xmi2uml.class" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.class" [style="filled",fillcolor="palegreen3",label="Class |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.datatype" -> "xmi2uml.datatype" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.datatype" [style="filled",fillcolor="palegreen3",label="Datatype |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.interface" -> "xmi2uml.interface" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.interface" [style="filled",fillcolor="palegreen3",label="Interface |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.package" -> "xmi2uml.package" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.package" [style="filled",fillcolor="palegreen3",label="Package |",shape="Mrecord"]
"xmi2uml.hierarchygenerator.primitivetype" -> "xmi2uml.primitivetype" [style=dotted,arrowhead=none]
"xmi2uml.hierarchygenerator.primitivetype" [style="filled",fillcolor="palegreen3",label="Primitivetype |",shape="Mrecord"]
"xmi2uml.interface" [style="filled",fillcolor="yellow2",label="xmi2uml.interface |",shape="Mrecord"]
"xmi2uml.interfacerealization" [style="filled",fillcolor="yellow2",label="xmi2uml.interfacerealization |",shape="Mrecord"]
"xmi2uml.memberend" [style="filled",fillcolor="yellow2",label="xmi2uml.memberend |",shape="Mrecord"]
"xmi2uml.operation" [style="filled",fillcolor="yellow2",label="xmi2uml.operation |",shape="Mrecord"]
"xmi2uml.ownedend" [style="filled",fillcolor="yellow2",label="xmi2uml.ownedend |",shape="Mrecord"]
"xmi2uml.package" [style="filled",fillcolor="yellow2",label="xmi2uml.package |",shape="Mrecord"]
"xmi2uml.parameter" [style="filled",fillcolor="yellow2",label="xmi2uml.parameter |",shape="Mrecord"]
"xmi2uml.primitivetype" [style="filled",fillcolor="yellow2",label="xmi2uml.primitivetype |",shape="Mrecord"]
"xmi2uml.profile" [style="filled",fillcolor="yellow2",label="xmi2uml.profile |",shape="Mrecord"]
"xmi2uml.profilegenerator" -> "xmi2uml.profilegenerator.profile" [arrowhead=none]
"xmi2uml.profilegenerator" -> "xmi2uml.profilegenerator.stereotypetokenizer" [arrowhead=none]
"xmi2uml.profilegenerator" [style="filled",fillcolor="pink2",label="Profilegenerator |",shape="Mrecord"]
"xmi2uml.profilegenerator.profile" -> "xmi2uml.profile" [style=dotted,arrowhead=none]
"xmi2uml.profilegenerator.profile" [style="filled",fillcolor="palegreen3",label="Profile |",shape="Mrecord"]
"xmi2uml.profilegenerator.stereotypetokenizer" -> "xmi2uml.stereotypedef" [style=dotted,arrowhead=none]
"xmi2uml.profilegenerator.stereotypetokenizer" [style="filled",fillcolor="palegreen3",label="Stereotypetokenizer |",shape="Mrecord"]
"xmi2uml.property" [style="filled",fillcolor="yellow2",label="xmi2uml.property |",shape="Mrecord"]
"xmi2uml.stereotype" [style="filled",fillcolor="yellow2",label="xmi2uml.stereotype |",shape="Mrecord"]
"xmi2uml.stereotypedef" [style="filled",fillcolor="yellow2",label="xmi2uml.stereotypedef |",shape="Mrecord"]
"xmi2uml.stereotypegenerator" -> "xmi2uml.stereotypegenerator.stereotype" [arrowhead=none]
"xmi2uml.stereotypegenerator" [style="filled",fillcolor="pink2",label="Stereotypegenerator |",shape="Mrecord"]
"xmi2uml.stereotypegenerator.stereotype" -> "xmi2uml.stereotype" [style=dotted,arrowhead=none]
"xmi2uml.stereotypegenerator.stereotype" [style="filled",fillcolor="palegreen3",label="Stereotype |",shape="Mrecord"]
}