Module: Archimate::DataModel

Defined in:
lib/archimate/data_model.rb,
lib/archimate/data_model/font.rb,
lib/archimate/data_model/view.rb,
lib/archimate/data_model/color.rb,
lib/archimate/data_model/label.rb,
lib/archimate/data_model/model.rb,
lib/archimate/data_model/style.rb,
lib/archimate/data_model/bounds.rb,
lib/archimate/data_model/concept.rb,
lib/archimate/data_model/concern.rb,
lib/archimate/data_model/diagram.rb,
lib/archimate/data_model/element.rb,
lib/archimate/data_model/location.rb,
lib/archimate/data_model/metadata.rb,
lib/archimate/data_model/property.rb,
lib/archimate/data_model/constants.rb,
lib/archimate/data_model/container.rb,
lib/archimate/data_model/view_node.rb,
lib/archimate/data_model/viewpoint.rb,
lib/archimate/data_model/connection.rb,
lib/archimate/data_model/any_element.rb,
lib/archimate/data_model/lang_string.rb,
lib/archimate/data_model/schema_info.rb,
lib/archimate/data_model/organization.rb,
lib/archimate/data_model/relationship.rb,
lib/archimate/data_model/view_concept.rb,
lib/archimate/data_model/any_attribute.rb,
lib/archimate/data_model/documentation.rb,
lib/archimate/data_model/modeling_note.rb,
lib/archimate/data_model/referenceable.rb,
lib/archimate/data_model/archimate_node.rb,
lib/archimate/data_model/diffable_array.rb,
lib/archimate/data_model/diffable_primitive.rb,
lib/archimate/data_model/named_referenceable.rb,
lib/archimate/data_model/property_definition.rb

Defined Under Namespace

Modules: Constants, DiffableArray, DiffablePrimitive Classes: AnyAttribute, AnyElement, ArchimateNode, Bounds, Color, Concept, Concern, Connection, Container, Diagram, Documentation, Element, Font, Label, LangString, Location, Metadata, Model, ModelingNote, NamedReferenceable, Organization, Property, PropertyDefinition, Referenceable, Relationship, SchemaInfo, Style, View, ViewConcept, ViewNode, Viewpoint

Constant Summary collapse

Coercible =
Archimate::DataModel::Coercible
Strict =
Archimate::DataModel::Strict
Identifier =

Identifiers in the ArchiMate exchange format standard are of

Strict::String
DataType =

An enumeration of data types.

Strict::String.default("string").enum("string", "boolean", "currency", "date", "time", "number")
InfluenceStrengthEnum =

Enumeration of Influence Strength types. These are suggestions.

Strict::String.enum(%w[+ ++ - -- 0 1 2 3 4 5 6 7 8 9 10])
ConcernList =
Strict::Array.member(Concern).default([])
ElementTypeEnum =
%w[BusinessActor BusinessRole BusinessCollaboration BusinessInterface
BusinessProcess BusinessFunction BusinessInteraction BusinessEvent BusinessService
BusinessObject Contract Representation Product
ApplicationComponent ApplicationCollaboration ApplicationInterface ApplicationFunction
ApplicationInteraction ApplicationProcess ApplicationEvent ApplicationService DataObject
Node Device SystemSoftware TechnologyCollaboration TechnologyInterface Path
CommunicationNetwork TechnologyFunction TechnologyProcess TechnologyInteraction
TechnologyEvent TechnologyService Artifact Equipment Facility DistributionNetwork Material
Stakeholder Driver Assessment Goal Outcome
Principle Requirement Constraint Meaning Value
Resource Capability CourseOfAction
WorkPackage Deliverable ImplementationEvent Plateau Gap
Grouping Location
AndJunction OrJunction].freeze
CompositeTypeEnum =
%w[Grouping Location].freeze
RelationshipConnectorEnum =
%w[AndJunction OrJunction].freeze
ElementEnumType =
[].concat([ElementTypeEnum, CompositeTypeEnum, RelationshipConnectorEnum]).freeze
ElementType =
Strict::String.enum(*ElementEnumType)
AllowedElementTypes =
Strict::Array.member(ElementType).default([])
NonNegativeInteger =

TODO: x & y Defined like this in the XSD

Coercible::Int.constrained(gteq: 0)
NonNegativeFloat =

.constrained(gteq: 0)

Coercible::Float
LocationList =
Strict::Array.member(Location).default([])
PropertiesList =
Strict::Array.member(Property).default([])
PositiveInteger =
Strict::Int.constrained(gt: 0)
COMPOSITION_VIEWPOINTS =

Basic Viewpoints Category:Composition Viewpoints that defines internal compositions and aggregations of elements.

[
  "Organization",
  "Application Platform",
  "Information Structure",
  "Technology",
  "Layered",
  "Physical"
].freeze
SUPPORT_VIEWPOINTS =

Category:Support Viewpoints where you are looking at elements that are supported by other elements. Typically from one layer and upwards to an above layer.

[
  "Product",
  "Application Usage",
  "Technology Usage"
].freeze
COOPERATION_VIEWPOINTS =

Category:Cooperation Towards peer elements which cooperate with each other. Typically across aspects.

[
  "Business Process Cooperation",
  "Application Cooperation"
].freeze
REALIZATION_VIEWPOINTS =

Category:Realization Viewpoints where you are looking at elements that realize other elements. Typically from one layer and downwards to a below layer.

[
  "Service Realization",
  "Implementation and Deployment",
  "Goal Realization",
  "Goal Contribution",
  "Principles",
  "Requirements Realization",
  "Motivation"
].freeze
STRATEGY_VIEWPOINTS =

Strategy Viewpoints

[
  "Strategy",
  "Capability Map",
  "Outcome Realization",
  "Resource Map"
].freeze
IMPLEMENTATION_AND_MIGRATION_VIEWPOINTS =

Implementation and Migration Viewpoints

[
  "Project",
  "Migration",
  "Implementation and Migration"
].freeze
Other_Viewpoints =

Other Viewpoints

%w[Stakeholder].freeze
VIEWPOINTS_ENUM =
[].concat(
  [COMPOSITION_VIEWPOINTS, SUPPORT_VIEWPOINTS, COOPERATION_VIEWPOINTS,
   REALIZATION_VIEWPOINTS, STRATEGY_VIEWPOINTS,
   IMPLEMENTATION_AND_MIGRATION_VIEWPOINTS].flatten
)
ViewpointType =
Strict::String.enum(*VIEWPOINTS_ENUM).optional
ViewpointContentEnum =
Strict::String.enum(%w[Details Coherence Overview])
ViewpointContent =
Strict::Array.member(ViewpointContentEnum).default([])
ViewpointPurposeEnum =
Strict::String.enum(%w[Designing Deciding Informing])
ViewpointPurpose =
Strict::Array.member(ViewpointPurposeEnum).default([])
ViewpointList =
Strict::Array.member(Viewpoint).default([])
ConnectionList =
Strict::Array.member("archimate.data_model.connection").default([])
RelationshipTypeEnum =
%w[
  Composition
  Aggregation
  Assignment
  Realization
  Serving
  Access
  Influence
  Triggering
  Flow
  Specialization
  Association
].freeze
RelationshipType =
Strict::String.enum(*RelationshipTypeEnum)
AllowedRelationshipTypes =
Strict::Array.member(RelationshipType).default([])
AccessType =
%w[Access Read Write ReadWrite]
AccessTypeEnum =
Strict::String.enum(*AccessType)
DocumentationGroup =
Strict::Array.member(Documentation).default([])