See: Description
Interface | Description |
---|---|
UmlKind |
Interface intended to be implemented by various *Kind enumerations, to allow for uniform
processing for any
UmlObject . |
UmlObject |
Data common to all UML objects.
|
Class | Description |
---|---|
AbstractUmlObject |
Common implementation of several methods and static utility methods for manipulating collections
of
UmlObject -s. |
NameDecomposition | |
NamespaceInfo |
Content of namespace class.
|
PresenceCondition | |
TextDescription |
Simple data structure to hold together the text description content and its format to facilitate
writing of UML documentation that may be formatted.
|
UML |
All the names from UML models that we rely on for various processing.
|
UmlAssociation |
UML association, with its two ends (UML classes).
|
UmlAssociation.Data |
Data from the UML model repository specific to
UmlAssociation . |
UmlAssociationEnd |
UML association end.
|
UmlAssociationEnd.AssociationEndPair |
Helper class, used to hold the two association ends of an association, from the perspective
of a UmlClass used as type for those ends.
|
UmlAssociationEnd.Data |
Data from the UML model repository specific to
UmlAssociationEnd . |
UmlAttribute |
UML attribute or enumeration literal.
|
UmlAttribute.Data |
Data from the UML model repository specific to
UmlAttribute . |
UmlClass |
UML class, interface or enumerated type.
|
UmlClass.Data |
Data from the UML model repository specific to
UmlClass . |
UmlConstraint |
UML constraint.
|
UmlConstraint.Data |
Data from the UML model repository specific to
UmlConstraint . |
UmlDependency |
Explicit (hand-drawn) UML dependency between either two structures (packages or classes).
|
UmlDependency.Data |
Data from the UML model repository specific to
UmlDependency . |
UmlDiagram |
Diagram from the UML model, assigned to either a class or a package.
|
UmlDiagram.Data |
Data from the UML model repository specific to
UmlDiagram . |
UmlModel |
TODO: Add link to test model built with the API.
|
UmlMultiplicity |
We should use only 4 multiplicities in EA: [1], [1..*], [0..1] and [0..*].
|
UmlObjectData |
Simple data structure that allows us to instantiate a subset of data of any
UmlObject
that can be initialised simply without any validation logic. |
UmlOperation |
UML operation.
|
UmlOperation.Data |
Data from the UML model repository specific to
UmlOperation . |
UmlPackage |
UML package and its sub-packages hold the content of the model.
|
UmlPackage.Data |
Data from the UML model repository specific to
UmlPackage . |
UmlParameter |
Operation parameter.
|
UmlParameter.Data |
Data from the UML model repository specific to
UmlParameter . |
UmlSkipped |
UML element or connector that we ignore, but track for validation purposes.
|
UmlSkipped.Data |
Data from the UML model repository specific to
UmlSkipped . |
UmlStereotype |
UML stereotype.
|
UmlStructure |
Common implementation for collections contained by packages and classes.
|
UmlStructure.Data |
Data from the UML model repository specific to
UmlStructure . |
ValueRange |
WG10 CDC and DA attributes specify sometimes allowed ranges in the initial value.
|
VersionInfo |
Content of version class, expected to be found in top packages.
|
Enum | Description |
---|---|
TextDescription.TextKind |
Kind of text formatting that helps to optimise writing text to various formats.
|
UmlAssociation.Direction |
Direction (navigability) of association.
|
UmlAssociationEnd.Kind |
Kind of aggregation for association end.
|
UmlAssociationEnd.Navigable |
Navigability of an association end.
|
UmlAttribute.Kind |
Kinds of UML attributes - correspond mainly to the kind of the class used as the attribute's
type.
|
UmlClass.CimKind |
Kind of the UML class for CIM domain.
|
UmlClass.Iec61850Kind |
Kind of the UML class for IEC 61850 domain.
|
UmlClass.InheritedKind |
Used in queries for attributes, association ends and operations.
|
UmlConstraint.Kind |
Kind of constraint.
|
UmlDependency.Kind |
Kinds of dependencies.
|
UmlDiagram.Kind |
Kind of diagram, as given by EA.
|
UmlMultiplicity.Kind |
Facilitates handling of IEC61850 class constraints (to ignore presence condition literals
which must be printed in the documentation, but are not actually used as constraints, rather
deduced from multiplicity of attribute).
|
UmlOperation.ReturnKind | |
UmlPackage.Kind |
Kind of UML package, reflecting hierarchical package containment and common properties for
the model content below a given level.
|
UmlParameter.Kind | |
UmlSkipped.Kind |
Kind of EA elements and connectors that may be found in the model, but are just skipped.
|
UmlVisibility |
"Translates" EA visibility strings to lower case for classes, attributes, operations and
association ends.
|
Exception | Description |
---|---|
InvalidTagException |
Note that the EA API is terribly slow, and that is why we do heavy caching of everything that we read from the EA file. Afterwards, except for updating and pasting diagrams to clipboard (for doc generation), we are completely detached from EA and work with these classes in-memory.
Important classes and interfaces are:
UmlObject
- interface defining methods all UML elements
in our model should implement.
UmlKind
- interface implemented by various *Kind
enumerations, to allow for consistent displaying of kind/category/type information. Note that we
could have designed and implemented subclasses of basic UML elements to reflect the
categorisation, but it would have lead to proliferation of classes here for not a big deal of
required functionality. Also, the resulting API would have likely been more complex to use, so we
just sticked to this simple solution for the moment.
AbstractUmlObject
- abstract class implementing some of
the methods of UmlObject
, and from which most of UML
elements in our model inherit. It also provides a couple of utility static methods that handle
collections of UmlObject
.
UmlObjectData
- value object holding attributes common
to all UmlObject
-s, used as instance variable in
AbstractUmlObject
. This makes it easier to populate the
instances on creation, by avoiding a big number of parameters to constructors of concrete
UmlObject
-s.
UmlModel
- class that holds the configuration
Config
and all the concrete elements of the model. An
instance of UmlModel
can be populated by a builder or simply
through the API (with the explicit code, like in tests). Elements of the UML model are arranged
in hierarchies (package, subpackage...) starting from model packages (
UmlPackage.Kind.MODEL
). This class also internaly caches the
major UML elements in hash maps (per UUID as string), to allow for fast searches without using
instanceof
operator.
AbstractUmlObject
and implementing
UmlObject
.
VersionInfo
- version information, as read from version
classes expected to be found in top packages.
TODO:
Copyright 2009-2015 Tatjana (Tanja) Kostic