archimate 1.2.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +47 -0
- data/TODOs.org +219 -0
- data/archimate.gemspec +2 -1
- data/exe/archidiff +7 -0
- data/exe/archidiff-summary +7 -0
- data/exe/archimerge +7 -0
- data/exe/fmtxml +7 -0
- data/lib/archimate.rb +10 -21
- data/lib/archimate/cli/archi.rb +2 -1
- data/lib/archimate/cli/cleanup.rb +8 -9
- data/lib/archimate/cli/convert.rb +3 -1
- data/lib/archimate/cli/mapper.rb +1 -1
- data/lib/archimate/cli/stats.rb +1 -1
- data/lib/archimate/config.rb +4 -1
- data/lib/archimate/data_model.rb +11 -24
- data/lib/archimate/data_model/any_attribute.rb +18 -5
- data/lib/archimate/data_model/any_element.rb +30 -7
- data/lib/archimate/data_model/bounds.rb +34 -7
- data/lib/archimate/data_model/color.rb +32 -7
- data/lib/archimate/data_model/comparison.rb +87 -0
- data/lib/archimate/data_model/concern.rb +20 -7
- data/lib/archimate/data_model/connection.rb +71 -51
- data/lib/archimate/data_model/connector_type.rb +23 -0
- data/lib/archimate/data_model/diagram.rb +72 -10
- data/lib/archimate/data_model/diagram_type.rb +17 -0
- data/lib/archimate/data_model/differentiable.rb +142 -0
- data/lib/archimate/data_model/element.rb +39 -45
- data/lib/archimate/data_model/element_type.rb +89 -0
- data/lib/archimate/data_model/font.rb +30 -12
- data/lib/archimate/data_model/lang_string.rb +89 -16
- data/lib/archimate/data_model/layer.rb +55 -0
- data/lib/archimate/data_model/layers.rb +62 -0
- data/lib/archimate/data_model/location.rb +27 -11
- data/lib/archimate/data_model/metadata.rb +10 -3
- data/lib/archimate/data_model/model.rb +188 -121
- data/lib/archimate/data_model/modeling_note.rb +14 -3
- data/lib/archimate/data_model/organization.rb +44 -13
- data/lib/archimate/data_model/{documentation.rb → preserved_lang_string.rb} +1 -5
- data/lib/archimate/data_model/property.rb +17 -11
- data/lib/archimate/data_model/property_definition.rb +34 -4
- data/lib/archimate/data_model/referenceable.rb +0 -9
- data/lib/archimate/data_model/referenceable_collection.rb +201 -0
- data/lib/archimate/data_model/relationship.rb +52 -33
- data/lib/archimate/data_model/relationship_type.rb +43 -0
- data/lib/archimate/data_model/schema_info.rb +17 -6
- data/lib/archimate/data_model/style.rb +41 -11
- data/lib/archimate/data_model/view_node.rb +153 -59
- data/lib/archimate/data_model/viewpoint.rb +56 -80
- data/lib/archimate/data_model/viewpoint_type.rb +429 -0
- data/lib/archimate/export/csv_export.rb +2 -2
- data/lib/archimate/export/cypher.rb +2 -2
- data/lib/archimate/export/graph_ml.rb +7 -5
- data/lib/archimate/export/jsonl.rb +166 -0
- data/lib/archimate/export/n_quads.rb +8 -5
- data/lib/archimate/file_format.rb +4 -5
- data/lib/archimate/file_formats/archi_file_reader.rb +7 -240
- data/lib/archimate/file_formats/archi_file_writer.rb +16 -188
- data/lib/archimate/file_formats/model_exchange_file_reader.rb +7 -225
- data/lib/archimate/file_formats/model_exchange_file_writer_21.rb +22 -114
- data/lib/archimate/file_formats/model_exchange_file_writer_30.rb +22 -122
- data/lib/archimate/file_formats/sax.rb +55 -0
- data/lib/archimate/file_formats/sax/any_element.rb +64 -0
- data/lib/archimate/file_formats/sax/archi/archi_handler_factory.rb +48 -0
- data/lib/archimate/file_formats/sax/archi/bounds.rb +25 -0
- data/lib/archimate/file_formats/sax/archi/connection.rb +47 -0
- data/lib/archimate/file_formats/sax/archi/content.rb +28 -0
- data/lib/archimate/file_formats/sax/archi/diagram.rb +66 -0
- data/lib/archimate/file_formats/sax/archi/element.rb +36 -0
- data/lib/archimate/file_formats/sax/archi/location.rb +25 -0
- data/lib/archimate/file_formats/sax/archi/model.rb +109 -0
- data/lib/archimate/file_formats/sax/archi/organization.rb +60 -0
- data/lib/archimate/file_formats/sax/archi/property.rb +54 -0
- data/lib/archimate/file_formats/sax/archi/relationship.rb +50 -0
- data/lib/archimate/file_formats/sax/archi/style.rb +35 -0
- data/lib/archimate/file_formats/sax/archi/view_node.rb +76 -0
- data/lib/archimate/file_formats/sax/capture_content.rb +20 -0
- data/lib/archimate/file_formats/sax/capture_documentation.rb +19 -0
- data/lib/archimate/file_formats/sax/capture_properties.rb +20 -0
- data/lib/archimate/file_formats/sax/content_element.rb +19 -0
- data/lib/archimate/file_formats/sax/document.rb +80 -0
- data/lib/archimate/file_formats/sax/handler.rb +54 -0
- data/lib/archimate/file_formats/sax/lang_string.rb +28 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/color.rb +36 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/connection.rb +67 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/diagram.rb +60 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/element.rb +43 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/font.rb +44 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/item.rb +64 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/location.rb +23 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/metadata.rb +66 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/model.rb +124 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/model_exchange_handler_factory.rb +53 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/property.rb +32 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/property_definition.rb +36 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/relationship.rb +49 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/schema_info.rb +47 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/style.rb +66 -0
- data/lib/archimate/file_formats/sax/model_exchange_file/view_node.rb +86 -0
- data/lib/archimate/file_formats/sax/no_op.rb +17 -0
- data/lib/archimate/file_formats/sax/preserved_lang_string.rb +28 -0
- data/lib/archimate/file_formats/serializer.rb +57 -0
- data/lib/archimate/file_formats/serializer/archi/bounds.rb +23 -0
- data/lib/archimate/file_formats/serializer/archi/connection.rb +33 -0
- data/lib/archimate/file_formats/serializer/archi/diagram.rb +28 -0
- data/lib/archimate/file_formats/serializer/archi/documentation.rb +16 -0
- data/lib/archimate/file_formats/serializer/archi/element.rb +24 -0
- data/lib/archimate/file_formats/serializer/archi/location.rb +26 -0
- data/lib/archimate/file_formats/serializer/archi/model.rb +25 -0
- data/lib/archimate/file_formats/serializer/archi/organization.rb +21 -0
- data/lib/archimate/file_formats/serializer/archi/property.rb +15 -0
- data/lib/archimate/file_formats/serializer/archi/relationship.rb +36 -0
- data/lib/archimate/file_formats/serializer/archi/view_node.rb +52 -0
- data/lib/archimate/file_formats/serializer/archi/viewpoint_type.rb +45 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/element.rb +25 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/location.rb +15 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/model_exchange_file_writer.rb +32 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/organization.rb +23 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/properties.rb +15 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/relationship.rb +19 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/style.rb +48 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/connection.rb +25 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/diagram.rb +27 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/item.rb +17 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/label.rb +17 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/model.rb +36 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/organization_body.rb +25 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/property.rb +19 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v21/view_node.rb +44 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/connection.rb +26 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/diagram.rb +27 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/item.rb +17 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/label.rb +17 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/model.rb +41 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/organization_body.rb +25 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/property.rb +19 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/property_definitions.rb +34 -0
- data/lib/archimate/file_formats/serializer/model_exchange_file/v30/view_node.rb +45 -0
- data/lib/archimate/file_formats/serializer/named_collection.rb +21 -0
- data/lib/archimate/file_formats/serializer/writer.rb +56 -0
- data/lib/archimate/file_formats/serializer/xml_lang_string.rb +30 -0
- data/lib/archimate/file_formats/serializer/xml_metadata.rb +64 -0
- data/lib/archimate/file_formats/{model_exchange_file → serializer}/xml_property_defs.rb +2 -2
- data/lib/archimate/lint/duplicate_entities.rb +3 -3
- data/lib/archimate/lint/linter.rb +24 -29
- data/lib/archimate/svg/connection.rb +13 -103
- data/lib/archimate/svg/diagram.rb +1 -1
- data/lib/archimate/svg/entity/base_entity.rb +12 -8
- data/lib/archimate/svg/entity/data_entity.rb +2 -2
- data/lib/archimate/svg/entity/diagram_model_reference.rb +1 -1
- data/lib/archimate/svg/entity/event_entity.rb +2 -2
- data/lib/archimate/svg/entity/gap.rb +1 -1
- data/lib/archimate/svg/entity/group.rb +1 -1
- data/lib/archimate/svg/entity/motivation_entity.rb +1 -1
- data/lib/archimate/svg/entity/node.rb +1 -1
- data/lib/archimate/svg/entity/rect_entity.rb +1 -1
- data/lib/archimate/svg/entity/rounded_rect_entity.rb +1 -1
- data/lib/archimate/svg/entity/service_entity.rb +2 -2
- data/lib/archimate/svg/entity/value.rb +2 -2
- data/lib/archimate/svg/path.rb +153 -0
- data/lib/archimate/svg/point.rb +8 -1
- data/lib/archimate/version.rb +1 -1
- metadata +118 -36
- data/lib/archimate/data_model/archimate_node.rb +0 -181
- data/lib/archimate/data_model/concept.rb +0 -14
- data/lib/archimate/data_model/constants.rb +0 -82
- data/lib/archimate/data_model/container.rb +0 -17
- data/lib/archimate/data_model/diffable_array.rb +0 -213
- data/lib/archimate/data_model/diffable_primitive.rb +0 -83
- data/lib/archimate/data_model/label.rb +0 -19
- data/lib/archimate/data_model/named_referenceable.rb +0 -14
- data/lib/archimate/data_model/view.rb +0 -12
- data/lib/archimate/data_model/view_concept.rb +0 -18
- data/lib/archimate/file_formats/archi_file_format.rb +0 -151
- data/lib/archimate/file_formats/archimate_v2.rb +0 -461
- data/lib/archimate/file_formats/model_exchange_file/xml_lang_string.rb +0 -35
- data/lib/archimate/file_formats/model_exchange_file/xml_metadata.rb +0 -115
- data/lib/archimate/file_formats/model_exchange_file/xml_property_definitions.rb +0 -28
- data/lib/archimate/file_formats/model_exchange_file_reader_21.rb +0 -73
- data/lib/archimate/file_formats/model_exchange_file_reader_30.rb +0 -134
- data/lib/archimate/file_formats/model_exchange_file_writer.rb +0 -157
- data/lib/archimate/file_formats/writer.rb +0 -56
@@ -1,83 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Archimate
|
3
|
-
module DataModel
|
4
|
-
module DiffablePrimitive
|
5
|
-
module DiffablePrimitiveMethods
|
6
|
-
def diff(other, from_parent, to_parent, attribute, from_attribute = nil)
|
7
|
-
from_attribute = attribute if from_attribute.nil?
|
8
|
-
if other.nil?
|
9
|
-
return [Diff::Delete.new(
|
10
|
-
Diff::ArchimateNodeAttributeReference.new(from_parent, attribute)
|
11
|
-
)]
|
12
|
-
end
|
13
|
-
raise TypeError, "Expected other #{other.class} to be of type #{self.class}" unless other.is_a?(self.class)
|
14
|
-
unless self == other
|
15
|
-
return [Diff::Change.new(
|
16
|
-
Diff::ArchimateNodeReference.for_node(to_parent, attribute),
|
17
|
-
Diff::ArchimateNodeReference.for_node(from_parent, from_attribute)
|
18
|
-
)]
|
19
|
-
end
|
20
|
-
[]
|
21
|
-
end
|
22
|
-
|
23
|
-
def in_model=(_m); end
|
24
|
-
|
25
|
-
def parent=(_p); end
|
26
|
-
|
27
|
-
def parent_attribute_name=(_attr_name); end
|
28
|
-
|
29
|
-
def build_index(index_hash)
|
30
|
-
index_hash
|
31
|
-
end
|
32
|
-
|
33
|
-
def primitive?
|
34
|
-
true
|
35
|
-
end
|
36
|
-
|
37
|
-
def id
|
38
|
-
object_id.to_s
|
39
|
-
end
|
40
|
-
|
41
|
-
def clone
|
42
|
-
self
|
43
|
-
end
|
44
|
-
|
45
|
-
def dup
|
46
|
-
self
|
47
|
-
end
|
48
|
-
|
49
|
-
def compact!
|
50
|
-
self
|
51
|
-
end
|
52
|
-
|
53
|
-
def referenced_identified_nodes
|
54
|
-
[]
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
refine Symbol do
|
59
|
-
include DiffablePrimitiveMethods
|
60
|
-
end
|
61
|
-
|
62
|
-
refine String do
|
63
|
-
include DiffablePrimitiveMethods
|
64
|
-
end
|
65
|
-
|
66
|
-
refine Hash do
|
67
|
-
include DiffablePrimitiveMethods
|
68
|
-
end
|
69
|
-
|
70
|
-
refine Integer do
|
71
|
-
include DiffablePrimitiveMethods
|
72
|
-
end
|
73
|
-
|
74
|
-
refine Float do
|
75
|
-
include DiffablePrimitiveMethods
|
76
|
-
end
|
77
|
-
|
78
|
-
refine NilClass do
|
79
|
-
include DiffablePrimitiveMethods
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Archimate
|
4
|
-
module DataModel
|
5
|
-
# Node type to allow a Label in a Artifact. the "label" element holds the info for the Note.
|
6
|
-
class Label < ViewNode
|
7
|
-
# conceptRef is a reference to an concept for this particular label, along with the attributeRef
|
8
|
-
# which references the particular concept's part which this label represents.
|
9
|
-
attribute :concept_ref, Identifier
|
10
|
-
# conceptRef is a reference to an concept for this particular label, along with the partRef
|
11
|
-
# which references the particular concept's part which this label represents. If this attribute
|
12
|
-
# is set, then there is no need to add a label tag in the Label parent (since it is contained in the model).
|
13
|
-
# the XPATH statement is meant to be interpreted in the context of what the conceptRef points to.
|
14
|
-
attribute :xpath_path, Strict::String.optional
|
15
|
-
end
|
16
|
-
|
17
|
-
Dry::Types.register_class(Label)
|
18
|
-
end
|
19
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Archimate
|
4
|
-
module DataModel
|
5
|
-
class NamedReferenceable < Referenceable
|
6
|
-
# Note: minimum 1 name is required for a Named Referenceable
|
7
|
-
# attribute :name, Strict::Array.member(LangString).default([]) .constrained(min_size: 1)
|
8
|
-
# attribute :documentation, DocumentationGroup
|
9
|
-
# attribute :grp_any, Strict::Array.member(AnyGroup).default([])
|
10
|
-
end
|
11
|
-
|
12
|
-
Dry::Types.register_class(NamedReferenceable)
|
13
|
-
end
|
14
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Archimate
|
4
|
-
module DataModel
|
5
|
-
# This is a container for all of the Views in the model.
|
6
|
-
class View < NamedReferenceable
|
7
|
-
attribute :properties, PropertiesList
|
8
|
-
attribute :viewpoint_type, Strict::String.optional # TODO: ViewpointType.optional is better, but is ArchiMate version dependent. Need to figure that out
|
9
|
-
attribute :viewpoint, Viewpoint.optional
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Archimate
|
4
|
-
module DataModel
|
5
|
-
# This is an abstract super-type of Node and Connection.
|
6
|
-
class ViewConcept < ArchimateNode
|
7
|
-
attribute :id, Identifier
|
8
|
-
attribute :labels, Strict::Array.member(LangString).constrained(min_size: 1)
|
9
|
-
attribute :documentation, DocumentationGroup
|
10
|
-
attribute :style, Style.optional
|
11
|
-
# the "viewRef" of an "Concept" is to a view that allows drill-down diagrams.
|
12
|
-
attribute :view_refs, Strict::Array.member(Identifier)
|
13
|
-
# TODO: any other attributes
|
14
|
-
end
|
15
|
-
|
16
|
-
Dry::Types.register_class(ViewConcept)
|
17
|
-
end
|
18
|
-
end
|
@@ -1,151 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Archimate
|
3
|
-
module FileFormats
|
4
|
-
module ArchiFileFormat
|
5
|
-
# strategy_folder_xpath = "/archimate:model/folder[@type='strategy']"
|
6
|
-
application_folder_xpath = "/archimate:model/folder[@type='application']"
|
7
|
-
business_folder_xpath = "/archimate:model/folder[@type='business']"
|
8
|
-
technology_folder_xpath = "/archimate:model/folder[@type='technology']"
|
9
|
-
# physical_folder_xpath = "/archimate:model/folder[@type='physical']"
|
10
|
-
motivation_folder_xpath = "/archimate:model/folder[@type='motivation']"
|
11
|
-
implementation_migration_folder_xpath = "/archimate:model/folder[@type='implementation_migration']"
|
12
|
-
connectors_folder_xpath = "/archimate:model/folder[@type='connectors']"
|
13
|
-
relations_folder_xpath = "/archimate:model/folder[@type='relations']"
|
14
|
-
diagrams_folder_xpath = "/archimate:model/folder[@type='diagrams']"
|
15
|
-
|
16
|
-
ELEMENT_TYPE_TO_PARENT_XPATH = {
|
17
|
-
"archimate:BusinessActor" => business_folder_xpath,
|
18
|
-
"archimate:BusinessCollaboration" => business_folder_xpath,
|
19
|
-
"archimate:BusinessEvent" => business_folder_xpath,
|
20
|
-
"archimate:BusinessFunction" => business_folder_xpath,
|
21
|
-
"archimate:BusinessInteraction" => business_folder_xpath,
|
22
|
-
"archimate:BusinessInterface" => business_folder_xpath,
|
23
|
-
"archimate:BusinessObject" => business_folder_xpath,
|
24
|
-
"archimate:BusinessProcess" => business_folder_xpath,
|
25
|
-
"archimate:BusinessRole" => business_folder_xpath,
|
26
|
-
"archimate:BusinessService" => business_folder_xpath,
|
27
|
-
"archimate:Contract" => business_folder_xpath,
|
28
|
-
"archimate:Location" => business_folder_xpath,
|
29
|
-
"archimate:Meaning" => business_folder_xpath,
|
30
|
-
"archimate:Value" => business_folder_xpath,
|
31
|
-
"archimate:Product" => business_folder_xpath,
|
32
|
-
"archimate:Representation" => business_folder_xpath,
|
33
|
-
|
34
|
-
"archimate:ApplicationCollaboration" => application_folder_xpath,
|
35
|
-
"archimate:ApplicationComponent" => application_folder_xpath,
|
36
|
-
"archimate:ApplicationFunction" => application_folder_xpath,
|
37
|
-
"archimate:ApplicationInteraction" => application_folder_xpath,
|
38
|
-
"archimate:ApplicationInterface" => application_folder_xpath,
|
39
|
-
"archimate:ApplicationService" => application_folder_xpath,
|
40
|
-
"archimate:DataObject" => application_folder_xpath,
|
41
|
-
|
42
|
-
"archimate:Artifact" => technology_folder_xpath,
|
43
|
-
"archimate:CommunicationPath" => technology_folder_xpath,
|
44
|
-
"archimate:Device" => technology_folder_xpath,
|
45
|
-
"archimate:InfrastructureFunction" => technology_folder_xpath,
|
46
|
-
"archimate:InfrastructureInterface" => technology_folder_xpath,
|
47
|
-
"archimate:InfrastructureService" => technology_folder_xpath,
|
48
|
-
"archimate:Network" => technology_folder_xpath,
|
49
|
-
"archimate:Node" => technology_folder_xpath,
|
50
|
-
"archimate:SystemSoftware" => technology_folder_xpath,
|
51
|
-
|
52
|
-
"archimate:Assessment" => motivation_folder_xpath,
|
53
|
-
"archimate:Constraint" => motivation_folder_xpath,
|
54
|
-
"archimate:Driver" => motivation_folder_xpath,
|
55
|
-
"archimate:Goal" => motivation_folder_xpath,
|
56
|
-
"archimate:Principle" => motivation_folder_xpath,
|
57
|
-
"archimate:Requirement" => motivation_folder_xpath,
|
58
|
-
"archimate:Stakeholder" => motivation_folder_xpath,
|
59
|
-
|
60
|
-
"archimate:Deliverable" => implementation_migration_folder_xpath,
|
61
|
-
"archimate:Gap" => implementation_migration_folder_xpath,
|
62
|
-
"archimate:Plateau" => implementation_migration_folder_xpath,
|
63
|
-
"archimate:WorkPackage" => implementation_migration_folder_xpath,
|
64
|
-
|
65
|
-
"archimate:AndJunction" => connectors_folder_xpath,
|
66
|
-
"archimate:Junction" => connectors_folder_xpath,
|
67
|
-
"archimate:OrJunction" => connectors_folder_xpath,
|
68
|
-
|
69
|
-
"archimate:AccessRelationship" => relations_folder_xpath,
|
70
|
-
"archimate:AggregationRelationship" => relations_folder_xpath,
|
71
|
-
"archimate:AssignmentRelationship" => relations_folder_xpath,
|
72
|
-
"archimate:AssociationRelationship" => relations_folder_xpath,
|
73
|
-
"archimate:CompositionRelationship" => relations_folder_xpath,
|
74
|
-
"archimate:FlowRelationship" => relations_folder_xpath,
|
75
|
-
"archimate:InfluenceRelationship" => relations_folder_xpath,
|
76
|
-
"archimate:RealisationRelationship" => relations_folder_xpath,
|
77
|
-
"archimate:SpecialisationRelationship" => relations_folder_xpath,
|
78
|
-
"archimate:TriggeringRelationship" => relations_folder_xpath,
|
79
|
-
"archimate:UsedByRelationship" => relations_folder_xpath,
|
80
|
-
|
81
|
-
"archimate:SketchModel" => diagrams_folder_xpath,
|
82
|
-
"archimate:ArchimateDiagramModel" => diagrams_folder_xpath
|
83
|
-
}.freeze
|
84
|
-
|
85
|
-
FOLDER_XPATHS = [
|
86
|
-
"folder[type=\"strategy\"]",
|
87
|
-
"folder[type=\"business\"]",
|
88
|
-
"folder[type=\"application\"]",
|
89
|
-
"folder[type=\"technology\"]",
|
90
|
-
"folder[type=\"physical\"]",
|
91
|
-
"folder[type=\"motivation\"]",
|
92
|
-
"folder[type=\"implementation_migration\"]",
|
93
|
-
"folder[type=\"other\"]",
|
94
|
-
"folder[type=\"connectors\"]"
|
95
|
-
].freeze
|
96
|
-
|
97
|
-
ELEMENT_FOLDER_TYPES = %w(
|
98
|
-
strategy
|
99
|
-
business
|
100
|
-
application
|
101
|
-
technology
|
102
|
-
physical
|
103
|
-
motivation
|
104
|
-
implementation_migration
|
105
|
-
connectors
|
106
|
-
).freeze
|
107
|
-
|
108
|
-
RELATION_XPATHS = [
|
109
|
-
"folder[type=\"relations\"]",
|
110
|
-
"folder[type=\"derived\"]"
|
111
|
-
].freeze
|
112
|
-
|
113
|
-
RELATION_FOLDER_TYPES = %w(relations derived).freeze
|
114
|
-
|
115
|
-
DIAGRAM_XPATHS = [
|
116
|
-
"folder[type=\"diagrams\"]"
|
117
|
-
].freeze
|
118
|
-
|
119
|
-
DIAGRAM_FOLDER_TYPES = %w(diagrams).freeze
|
120
|
-
|
121
|
-
VIEWPOINTS = [
|
122
|
-
"",
|
123
|
-
"Actor Co-operation",
|
124
|
-
"Application Behavior",
|
125
|
-
"Application Co-operation",
|
126
|
-
"Application Structure",
|
127
|
-
"Application Usage",
|
128
|
-
"Business Function",
|
129
|
-
"Business Process Co-operation",
|
130
|
-
"Business Process",
|
131
|
-
"Product",
|
132
|
-
"Implementation and Deployment",
|
133
|
-
"Information Structure",
|
134
|
-
"Infrastructure Usage",
|
135
|
-
"Infrastructure",
|
136
|
-
"Layered",
|
137
|
-
"Organization",
|
138
|
-
"Service Realization",
|
139
|
-
"Stakeholder",
|
140
|
-
"Goal Realization",
|
141
|
-
"Goal Contribution",
|
142
|
-
"Principles",
|
143
|
-
"Requirements Realization",
|
144
|
-
"Motivation",
|
145
|
-
"Project",
|
146
|
-
"Migration",
|
147
|
-
"Implementation and Migration"
|
148
|
-
].freeze
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
@@ -1,461 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Archimate
|
4
|
-
module FileFormats
|
5
|
-
module ArchimateV2
|
6
|
-
LAYER_ENTITIES = {
|
7
|
-
"Business" => %w[
|
8
|
-
BusinessActor
|
9
|
-
BusinessCollaboration
|
10
|
-
BusinessEvent
|
11
|
-
BusinessFunction
|
12
|
-
BusinessInteraction
|
13
|
-
BusinessInterface
|
14
|
-
BusinessObject
|
15
|
-
BusinessProcess
|
16
|
-
BusinessRole
|
17
|
-
BusinessService
|
18
|
-
Contract
|
19
|
-
Location
|
20
|
-
Meaning
|
21
|
-
Value
|
22
|
-
Product
|
23
|
-
Representation
|
24
|
-
].freeze,
|
25
|
-
"Application" => %w[
|
26
|
-
ApplicationCollaboration
|
27
|
-
ApplicationComponent
|
28
|
-
ApplicationFunction
|
29
|
-
ApplicationInteraction
|
30
|
-
ApplicationInterface
|
31
|
-
ApplicationService
|
32
|
-
DataObject
|
33
|
-
].freeze,
|
34
|
-
"Technology" => %w[
|
35
|
-
Artifact
|
36
|
-
CommunicationPath
|
37
|
-
Device
|
38
|
-
InfrastructureFunction
|
39
|
-
InfrastructureInterface
|
40
|
-
InfrastructureService
|
41
|
-
Network
|
42
|
-
Node
|
43
|
-
SystemSoftware
|
44
|
-
].freeze,
|
45
|
-
"Motivation" => %w[
|
46
|
-
Assessment
|
47
|
-
Constraint
|
48
|
-
Driver
|
49
|
-
Goal
|
50
|
-
Principle
|
51
|
-
Requirement
|
52
|
-
Stakeholder
|
53
|
-
].freeze,
|
54
|
-
"Implementation and Migration" => %w[
|
55
|
-
Deliverable
|
56
|
-
Gap
|
57
|
-
Plateau
|
58
|
-
WorkPackage
|
59
|
-
].freeze
|
60
|
-
}.freeze
|
61
|
-
|
62
|
-
ENTITIES = LAYER_ENTITIES.values.flatten.freeze
|
63
|
-
|
64
|
-
CORE_ELEMENTS = %w[Business Application Technology]
|
65
|
-
.map { |layer| LAYER_ENTITIES[layer] }
|
66
|
-
.inject([]) { |memo, obj| memo.concat(obj) }
|
67
|
-
|
68
|
-
CONNECTORS = %w[
|
69
|
-
AndJunction
|
70
|
-
Junction
|
71
|
-
OrJunction
|
72
|
-
].freeze
|
73
|
-
|
74
|
-
RELATIONS = %w[
|
75
|
-
AccessRelationship
|
76
|
-
AggregationRelationship
|
77
|
-
AssignmentRelationship
|
78
|
-
AssociationRelationship
|
79
|
-
CompositionRelationship
|
80
|
-
FlowRelationship
|
81
|
-
InfluenceRelationship
|
82
|
-
RealisationRelationship
|
83
|
-
SpecialisationRelationship
|
84
|
-
TriggeringRelationship
|
85
|
-
UsedByRelationship
|
86
|
-
].freeze
|
87
|
-
|
88
|
-
DEFAULT_RELATIONS = %w[
|
89
|
-
AccessRelationship
|
90
|
-
AggregationRelationship
|
91
|
-
AssignmentRelationship
|
92
|
-
AssociationRelationship
|
93
|
-
CompositionRelationship
|
94
|
-
FlowRelationship
|
95
|
-
RealisationRelationship
|
96
|
-
SpecialisationRelationship
|
97
|
-
TriggeringRelationship
|
98
|
-
UsedByRelationship
|
99
|
-
].freeze
|
100
|
-
|
101
|
-
RELATION_VERBS = {
|
102
|
-
"AccessRelationship" => "accesses",
|
103
|
-
"AggregationRelationship" => "aggregates",
|
104
|
-
"AssignmentRelationship" => "is assigned to",
|
105
|
-
"AssociationRelationship" => "is associated with",
|
106
|
-
"CompositionRelationship" => "composes",
|
107
|
-
"FlowRelationship" => "flows to",
|
108
|
-
"InfluenceRelationship" => "influenecs",
|
109
|
-
"RealisationRelationship" => "realizes",
|
110
|
-
"SpecialisationRelationship" => "specializes",
|
111
|
-
"TriggeringRelationship" => "triggers",
|
112
|
-
"UsedByRelationship" => "is used by"
|
113
|
-
}.freeze
|
114
|
-
|
115
|
-
VIEWPOINTS = {
|
116
|
-
"Introductory" => { entities: CORE_ELEMENTS, relations: RELATIONS },
|
117
|
-
"Organization" => {
|
118
|
-
entities: CONNECTORS + %w[
|
119
|
-
BusinessActor
|
120
|
-
BusinessCollaboration
|
121
|
-
BusinessInterface
|
122
|
-
BusinessRole
|
123
|
-
Location
|
124
|
-
],
|
125
|
-
relations: DEFAULT_RELATIONS - %w[AccessRelationship RealisationRelationship]
|
126
|
-
},
|
127
|
-
"Actor Co-operation" => {
|
128
|
-
entities: CONNECTORS + %w[
|
129
|
-
ApplicationComponent
|
130
|
-
ApplicationInterface
|
131
|
-
ApplicationService
|
132
|
-
BusinessActor
|
133
|
-
BusinessCollaboration
|
134
|
-
BusinessInterface
|
135
|
-
BusinessRole
|
136
|
-
BusinessService
|
137
|
-
],
|
138
|
-
relations: DEFAULT_RELATIONS - %w[AccessRelationship]
|
139
|
-
},
|
140
|
-
"Business Function" => {
|
141
|
-
entities: CONNECTORS + %w[
|
142
|
-
BusinessActor
|
143
|
-
BusinessFunction
|
144
|
-
BusinessRole
|
145
|
-
],
|
146
|
-
relations: DEFAULT_RELATIONS - %w[AccessRelationship RealisationRelationship]
|
147
|
-
},
|
148
|
-
"Business Process" => {
|
149
|
-
entities: CONNECTORS + %w[
|
150
|
-
ApplicationService
|
151
|
-
BusinessActor
|
152
|
-
BusinessCollaboration
|
153
|
-
BusinessEvent
|
154
|
-
BusinessFunction
|
155
|
-
BusinessInteraction
|
156
|
-
BusinessObject
|
157
|
-
BusinessProcess
|
158
|
-
BusinessRole
|
159
|
-
BusinessService
|
160
|
-
Location
|
161
|
-
Representation
|
162
|
-
],
|
163
|
-
relations: DEFAULT_RELATIONS
|
164
|
-
},
|
165
|
-
"Business Process Co-operation" => {
|
166
|
-
entities: CONNECTORS + %w[
|
167
|
-
ApplicationService
|
168
|
-
BusinessActor
|
169
|
-
BusinessCollaboration
|
170
|
-
BusinessEvent
|
171
|
-
BusinessFunction
|
172
|
-
BusinessInteraction
|
173
|
-
BusinessObject
|
174
|
-
BusinessProcess
|
175
|
-
BusinessRole
|
176
|
-
BusinessService
|
177
|
-
Location
|
178
|
-
Representation
|
179
|
-
],
|
180
|
-
relations: DEFAULT_RELATIONS
|
181
|
-
},
|
182
|
-
"Product" => {
|
183
|
-
entities: CONNECTORS + %w[
|
184
|
-
ApplicationComponent
|
185
|
-
ApplicationInterface
|
186
|
-
ApplicationService
|
187
|
-
BusinessActor
|
188
|
-
BusinessEvent
|
189
|
-
BusinessFunction
|
190
|
-
BusinessInteraction
|
191
|
-
BusinessInterface
|
192
|
-
BusinessProcess
|
193
|
-
BusinessRole
|
194
|
-
BusinessService
|
195
|
-
Contract
|
196
|
-
Product
|
197
|
-
Value
|
198
|
-
],
|
199
|
-
relations: DEFAULT_RELATIONS
|
200
|
-
},
|
201
|
-
"Application Behavior" => {
|
202
|
-
entities: CONNECTORS + %w[
|
203
|
-
ApplicationCollaboration
|
204
|
-
ApplicationComponent
|
205
|
-
ApplicationFunction
|
206
|
-
ApplicationInteraction
|
207
|
-
ApplicationInterface
|
208
|
-
ApplicationService
|
209
|
-
DataObject
|
210
|
-
],
|
211
|
-
relations: DEFAULT_RELATIONS
|
212
|
-
},
|
213
|
-
"Application Co-operation" => {
|
214
|
-
entities: CONNECTORS + %w[
|
215
|
-
ApplicationCollaboration
|
216
|
-
ApplicationComponent
|
217
|
-
ApplicationFunction
|
218
|
-
ApplicationInteraction
|
219
|
-
ApplicationInterface
|
220
|
-
ApplicationService
|
221
|
-
DataObject
|
222
|
-
Location
|
223
|
-
],
|
224
|
-
relations: DEFAULT_RELATIONS
|
225
|
-
},
|
226
|
-
"Application Structure" => {
|
227
|
-
entities: CONNECTORS + %w[
|
228
|
-
ApplicationCollaboration
|
229
|
-
ApplicationComponent
|
230
|
-
ApplicationInterface
|
231
|
-
DataObject
|
232
|
-
],
|
233
|
-
relations: DEFAULT_RELATIONS - %w[RealisationRelationship]
|
234
|
-
},
|
235
|
-
"Application Usage" => {
|
236
|
-
entities: CONNECTORS + %w[
|
237
|
-
ApplicationCollaboration
|
238
|
-
ApplicationComponent
|
239
|
-
ApplicationInterface
|
240
|
-
ApplicationService
|
241
|
-
BusinessEvent
|
242
|
-
BusinessFunction
|
243
|
-
BusinessInteraction
|
244
|
-
BusinessObject
|
245
|
-
BusinessProcess
|
246
|
-
BusinessRole
|
247
|
-
DataObject
|
248
|
-
],
|
249
|
-
relations: DEFAULT_RELATIONS
|
250
|
-
},
|
251
|
-
"Infrastructure" => {
|
252
|
-
entities: CONNECTORS + %w[
|
253
|
-
Artifact
|
254
|
-
CommunicationPath
|
255
|
-
Device
|
256
|
-
InfrastructureFunction
|
257
|
-
InfrastructureInterface
|
258
|
-
InfrastructureService
|
259
|
-
Location
|
260
|
-
Network
|
261
|
-
Node
|
262
|
-
SystemSoftware
|
263
|
-
],
|
264
|
-
relations: DEFAULT_RELATIONS
|
265
|
-
},
|
266
|
-
"Infrastructure Usage" => {
|
267
|
-
entities: CONNECTORS + %w[
|
268
|
-
ApplicationComponent
|
269
|
-
ApplicationFunction
|
270
|
-
CommunicationPath
|
271
|
-
Device
|
272
|
-
InfrastructureFunction
|
273
|
-
InfrastructureInterface
|
274
|
-
InfrastructureService
|
275
|
-
Network
|
276
|
-
Node
|
277
|
-
SystemSoftware
|
278
|
-
],
|
279
|
-
relations: DEFAULT_RELATIONS
|
280
|
-
},
|
281
|
-
"Implementation and Deployment" => {
|
282
|
-
entities: CONNECTORS + %w[
|
283
|
-
ApplicationCollaboration
|
284
|
-
ApplicationComponent
|
285
|
-
Artifact
|
286
|
-
CommunicationPath
|
287
|
-
DataObject
|
288
|
-
Device
|
289
|
-
InfrastructureService
|
290
|
-
Network
|
291
|
-
Node
|
292
|
-
SystemSoftware
|
293
|
-
],
|
294
|
-
relations: DEFAULT_RELATIONS
|
295
|
-
},
|
296
|
-
"Information Structure" => {
|
297
|
-
entities: CONNECTORS + %w[
|
298
|
-
Artifact
|
299
|
-
BusinessObject
|
300
|
-
DataObject
|
301
|
-
Meaning
|
302
|
-
Representation
|
303
|
-
],
|
304
|
-
relations: DEFAULT_RELATIONS - %w[AssignmentRelationship UsedByRelationship]
|
305
|
-
},
|
306
|
-
"Service Realization" => {
|
307
|
-
entities: CONNECTORS + %w[
|
308
|
-
ApplicationCollaboration
|
309
|
-
ApplicationComponent
|
310
|
-
ApplicationService
|
311
|
-
BusinessActor
|
312
|
-
BusinessCollaboration
|
313
|
-
BusinessEvent
|
314
|
-
BusinessFunction
|
315
|
-
BusinessInteraction
|
316
|
-
BusinessObject
|
317
|
-
BusinessProcess
|
318
|
-
BusinessRole
|
319
|
-
BusinessService
|
320
|
-
DataObject
|
321
|
-
],
|
322
|
-
relations: DEFAULT_RELATIONS
|
323
|
-
},
|
324
|
-
"Layered" => {
|
325
|
-
entities: ENTITIES + CONNECTORS,
|
326
|
-
relations: RELATIONS
|
327
|
-
},
|
328
|
-
"Landscape Map" => {
|
329
|
-
entities: ENTITIES + CONNECTORS,
|
330
|
-
relations: RELATIONS
|
331
|
-
},
|
332
|
-
"Stakeholder" => {
|
333
|
-
entities: %w[
|
334
|
-
Assessment
|
335
|
-
Driver
|
336
|
-
Goal
|
337
|
-
Stakeholder
|
338
|
-
],
|
339
|
-
relations: %w[
|
340
|
-
AggregationRelationship
|
341
|
-
AssociationRelationship
|
342
|
-
CompositionRelationship
|
343
|
-
InfluenceRelationship
|
344
|
-
SpecialisationRelationship
|
345
|
-
]
|
346
|
-
},
|
347
|
-
"Goal Realization" => {
|
348
|
-
entities: %w[
|
349
|
-
Constraint
|
350
|
-
Goal
|
351
|
-
Principle
|
352
|
-
Requirement
|
353
|
-
],
|
354
|
-
relations: %w[
|
355
|
-
AggregationRelationship
|
356
|
-
AssociationRelationship
|
357
|
-
CompositionRelationship
|
358
|
-
InfluenceRelationship
|
359
|
-
RealisationRelationship
|
360
|
-
SpecialisationRelationship
|
361
|
-
]
|
362
|
-
},
|
363
|
-
"Goal Contribution" => {
|
364
|
-
entities: %w[
|
365
|
-
Constraint
|
366
|
-
Goal
|
367
|
-
Principle
|
368
|
-
Requirement
|
369
|
-
],
|
370
|
-
relations: %w[
|
371
|
-
AggregationRelationship
|
372
|
-
AssociationRelationship
|
373
|
-
CompositionRelationship
|
374
|
-
InfluenceRelationship
|
375
|
-
RealisationRelationship
|
376
|
-
SpecialisationRelationship
|
377
|
-
]
|
378
|
-
},
|
379
|
-
"Principles" => {
|
380
|
-
entities: %w[
|
381
|
-
Goal
|
382
|
-
Principle
|
383
|
-
],
|
384
|
-
relations: %w[
|
385
|
-
AggregationRelationship
|
386
|
-
AssociationRelationship
|
387
|
-
CompositionRelationship
|
388
|
-
InfluenceRelationship
|
389
|
-
RealisationRelationship
|
390
|
-
SpecialisationRelationship
|
391
|
-
]
|
392
|
-
},
|
393
|
-
"Requirements Realization" => {
|
394
|
-
entities: CORE_ELEMENTS + CONNECTORS + %w[
|
395
|
-
Constraint
|
396
|
-
Goal
|
397
|
-
Requirement
|
398
|
-
],
|
399
|
-
relations: DEFAULT_RELATIONS
|
400
|
-
},
|
401
|
-
"Motivation" => {
|
402
|
-
entities: %w[
|
403
|
-
Assessment
|
404
|
-
Constraint
|
405
|
-
Driver
|
406
|
-
Goal
|
407
|
-
Principle
|
408
|
-
Requirement
|
409
|
-
Stakeholder
|
410
|
-
],
|
411
|
-
relations: %w[
|
412
|
-
AggregationRelationship
|
413
|
-
AssociationRelationship
|
414
|
-
CompositionRelationship
|
415
|
-
FlowRelationship
|
416
|
-
InfluenceRelationship
|
417
|
-
RealisationRelationship
|
418
|
-
SpecialisationRelationship
|
419
|
-
]
|
420
|
-
},
|
421
|
-
"Project" => {
|
422
|
-
entities: CONNECTORS + %w[
|
423
|
-
BusinessActor
|
424
|
-
BusinessRole
|
425
|
-
Deliverable
|
426
|
-
Goal
|
427
|
-
WorkPackage
|
428
|
-
],
|
429
|
-
relations: DEFAULT_RELATIONS - %w[AccessRelationship]
|
430
|
-
},
|
431
|
-
"Migration" => {
|
432
|
-
entities: CONNECTORS + %w[Gap Plateau],
|
433
|
-
relations: %w[
|
434
|
-
AndJunction
|
435
|
-
AssociationRelationship
|
436
|
-
CompositionRelationship
|
437
|
-
FlowRelationship
|
438
|
-
Junction
|
439
|
-
OrJunction
|
440
|
-
TriggeringRelationship
|
441
|
-
]
|
442
|
-
},
|
443
|
-
"Implementation and Migration" => {
|
444
|
-
entities: CORE_ELEMENTS + CONNECTORS + %w[
|
445
|
-
Location
|
446
|
-
Requirement
|
447
|
-
Constraint
|
448
|
-
Goal
|
449
|
-
BusinessRole
|
450
|
-
WorkPackage
|
451
|
-
Deliverable
|
452
|
-
BusinessActor
|
453
|
-
Plateau
|
454
|
-
Gap
|
455
|
-
],
|
456
|
-
relations: DEFAULT_RELATIONS
|
457
|
-
}
|
458
|
-
}.freeze
|
459
|
-
end
|
460
|
-
end
|
461
|
-
end
|