Class: Archimate::DataModel::Diagram

Inherits:
Object
  • Object
show all
Includes:
Comparison
Defined in:
lib/archimate/data_model/diagram.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Comparison

#==, #[], #dig, #each, #hash, included, #pretty_print, #to_h

Constructor Details

#initialize(id:, name: nil, documentation: nil, type: nil, properties: [], viewpoint_type: nil, viewpoint: nil, nodes: [], connection_router_type: nil, background: nil, connections: []) ⇒ Diagram

Returns a new instance of Diagram.



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/archimate/data_model/diagram.rb', line 50

def initialize(id:, name: nil, documentation: nil, type: nil, properties: [],
               viewpoint_type: nil, viewpoint: nil, nodes: [],
               connection_router_type: nil, background: nil, connections: [])
  @id = id
  @name = name
  @documentation = documentation
  @type = type
  @properties = properties
  @viewpoint_type = viewpoint_type
  @viewpoint = viewpoint
  @nodes = nodes
  @connection_router_type = connection_router_type
  @background = background
  @connections = connections
end

Instance Attribute Details

#backgroundInt, NilClass (readonly)

Returns:

  • (Int, NilClass)


45
# File 'lib/archimate/data_model/diagram.rb', line 45

model_attr :background

#connection_router_typeInt, NilClass (readonly)

Returns:

  • (Int, NilClass)


41
# File 'lib/archimate/data_model/diagram.rb', line 41

model_attr :connection_router_type

#connectionsArray<Connection>

Returns:



48
# File 'lib/archimate/data_model/diagram.rb', line 48

model_attr :connections, writable: true

#documentationPreservedLangString, NilClass

Returns:



16
# File 'lib/archimate/data_model/diagram.rb', line 16

model_attr :documentation, writable: true

#idString (readonly)

Returns:

  • (String)


10
# File 'lib/archimate/data_model/diagram.rb', line 10

model_attr :id

#nameLangString

Returns:



13
# File 'lib/archimate/data_model/diagram.rb', line 13

model_attr :name, writable: true

#nodesArray<ViewNode>

Returns:



37
# File 'lib/archimate/data_model/diagram.rb', line 37

model_attr :nodes, writable: true

#propertiesArray<Property>

Returns:



27
# File 'lib/archimate/data_model/diagram.rb', line 27

model_attr :properties, writable: true

#typeString, NilClass (readonly)

Returns:

  • (String, NilClass)


24
# File 'lib/archimate/data_model/diagram.rb', line 24

model_attr :type

#viewpointViewpoint, NilClass (readonly)

Returns:



34
# File 'lib/archimate/data_model/diagram.rb', line 34

model_attr :viewpoint

#viewpoint_typeString, NilClass (readonly)

Returns:

  • (String, NilClass)


31
# File 'lib/archimate/data_model/diagram.rb', line 31

model_attr :viewpoint_type

Instance Method Details

#all_nodesObject



66
67
68
# File 'lib/archimate/data_model/diagram.rb', line 66

def all_nodes
  nodes.inject(Array.new(nodes)) { |child_ary, child| child_ary.concat(child.all_nodes) }
end

#element_idsObject



74
75
76
# File 'lib/archimate/data_model/diagram.rb', line 74

def element_ids
  @element_ids ||= elements.map(&:id)
end

#elementsObject



70
71
72
# File 'lib/archimate/data_model/diagram.rb', line 70

def elements
  @elements ||= all_nodes.map(&:element).compact
end

#referenced_identified_nodesObject



94
95
96
97
98
99
# File 'lib/archimate/data_model/diagram.rb', line 94

def referenced_identified_nodes
  (nodes + connections)
    .map(&:referenced_identified_nodes)
    .flatten
    .uniq
end

#relationship_idsObject



82
83
84
# File 'lib/archimate/data_model/diagram.rb', line 82

def relationship_ids
  @relationship_ids ||= relationships.map(&:id)
end

#relationshipsObject



78
79
80
# File 'lib/archimate/data_model/diagram.rb', line 78

def relationships
  @relationships ||= connections.map(&:relationship).compact
end

#to_sObject



86
87
88
# File 'lib/archimate/data_model/diagram.rb', line 86

def to_s
  "#{Archimate::Color.data_model('Diagram')}<#{id}>[#{Archimate::Color.color(name, %i[white underline])}]"
end

#total_viewpoint?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/archimate/data_model/diagram.rb', line 90

def total_viewpoint?
  viewpoint_type.nil? || viewpoint_type.empty?
end