Module: Ea::Model
- Defined in:
- lib/ea/model.rb,
lib/ea/model/base.rb,
lib/ea/model/klass.rb,
lib/ea/model/point.rb,
lib/ea/model/bounds.rb,
lib/ea/model/diagram.rb,
lib/ea/model/package.rb,
lib/ea/model/document.rb,
lib/ea/model/metadata.rb,
lib/ea/model/property.rb,
lib/ea/model/waypoint.rb,
lib/ea/model/data_type.rb,
lib/ea/model/interface.rb,
lib/ea/model/operation.rb,
lib/ea/model/parameter.rb,
lib/ea/model/annotation.rb,
lib/ea/model/classifier.rb,
lib/ea/model/dependency.rb,
lib/ea/model/stereotype.rb,
lib/ea/model/association.rb,
lib/ea/model/enumeration.rb,
lib/ea/model/realization.rb,
lib/ea/model/relationship.rb,
lib/ea/model/tagged_value.rb,
lib/ea/model/generalization.rb,
lib/ea/model/primitive_type.rb,
lib/ea/model/diagram_element.rb,
lib/ea/model/polymorphic_maps.rb,
lib/ea/model/diagram_connector.rb,
lib/ea/model/enumeration_literal.rb
Overview
Ea::Model is the canonical domain model for what Sparx Enterprise Architect models.
It is intentionally independent of any source format. QEA and XMI are translated into Ea::Model by source adapters (Ea::Sources::Qea, Ea::Sources::Xmi). Consumers (Ea::Spa, future exporters, validators, differs) project from Ea::Model — they do not redefine the modeling types.
Architectural principle: Hexagonal / Ports & Adapters. Ea::Model is the hexagon. Source adapters are driving ports; consumer adapters are driven ports. Dependencies point inward only.
Defined Under Namespace
Classes: Annotation, Association, Base, Bounds, Classifier, DataType, Dependency, Diagram, DiagramConnector, DiagramElement, Document, Enumeration, EnumerationLiteral, Generalization, Interface, Klass, Metadata, Operation, Package, Parameter, Point, PrimitiveType, Property, Realization, Relationship, Stereotype, TaggedValue, Waypoint
Constant Summary collapse
- CLASSIFIER_POLYMORPHIC_MAP =
Polymorphic dispatch maps for collections that hold subclasses of an abstract base. The discriminator field carries the concrete subclass name on every instance; lutaml-model uses this map to pick the right class on deserialize.
{ attribute: "modelKind", class_map: { "class" => "Ea::Model::Klass", "data_type" => "Ea::Model::DataType", "primitive_type" => "Ea::Model::PrimitiveType", "enumeration" => "Ea::Model::Enumeration", "interface" => "Ea::Model::Interface" } }.freeze
- RELATIONSHIP_POLYMORPHIC_MAP =
{ attribute: "relationshipKind", class_map: { "association" => "Ea::Model::Association", "generalization" => "Ea::Model::Generalization", "realization" => "Ea::Model::Realization", "dependency" => "Ea::Model::Dependency" } }.freeze