Class: Archimate::DataModel::Diagram

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Referenceable

#add_reference, #destroy, #model, #references, #remove_reference, #replace_item_with, #replace_with

Methods included from Comparison

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

Instance Attribute Details

#backgroundInt, NilClass (readonly)

value of 0 on Archi Sketch Model

Returns:

  • (Int, NilClass)


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

model_attr :background, default: nil

#connection_router_typeInt, NilClass (readonly)

TODO:

Archi formats only fill this in, should be an enum

Returns:

  • (Int, NilClass)


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

model_attr :connection_router_type, default: nil

#connectionsArray<Connection>

Returns:



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

model_attr :connections, writable: true, default: [], referenceable_list: true

#documentationPreservedLangString, NilClass

Returns:



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

model_attr :documentation, writable: true, default: nil

#idString (readonly)

Returns:

  • (String)


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

model_attr :id

#nameLangString

Returns:



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

model_attr :name, writable: true, default: nil

#nodesArray<ViewNode>

Returns:



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

model_attr :nodes, writable: true, default: [], referenceable_list: true

#propertiesArray<Property>

Returns:



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

model_attr :properties, writable: true, default: []

#typeString, NilClass (readonly)

Note:

type here was used for the Element/Relationship/Diagram type

Returns:

  • (String, NilClass)


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

model_attr :type, default: nil

#viewpointViewpoint, NilClass (readonly)

Returns:



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

model_attr :viewpoint, default: nil

Instance Method Details

#all_nodesObject



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

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

#element_idsObject



55
56
57
# File 'lib/archimate/data_model/diagram.rb', line 55

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

#elementsObject



51
52
53
# File 'lib/archimate/data_model/diagram.rb', line 51

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

#other_attributesArray<AnyAttribute>

Returns:



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

model_attr :other_attributes, default: []

#other_elementsArray<AnyElement>

Returns:



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

model_attr :other_elements, default: []

#relationship_idsObject



63
64
65
# File 'lib/archimate/data_model/diagram.rb', line 63

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

#relationshipsObject



59
60
61
# File 'lib/archimate/data_model/diagram.rb', line 59

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

#to_sObject



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

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

#total_viewpoint?Boolean

Returns:

  • (Boolean)


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

def total_viewpoint?
  viewpoint.nil?
end

#viewpoint_descriptionObject



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/archimate/data_model/diagram.rb', line 75

def viewpoint_description
  case viewpoint
  when Symbol
    viewpoint.to_s
  when Viewpoint
    viewpoint.name.to_s
  else
    case type
    when "canvas:CanvasModel"
      "Canvas"
    when "archimate:SketchModel"
      "Sketch"
    else
      "Total"
    end
  end
end