Class: Archimate::DataModel::Organization

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

Overview

Note:

that Organization must fit into a tree structure (so strictly nested).

An organization element represents a structural node in a particular organization of the model concepts. An organization element may be a parent or sibling of other organization elements, each one representing a unique structural node.

An organization element may reference an ArchiMate element, ArchiMate relationship, or nothing (in which case it is a structural container)

An organization has no meaning unless it has at least child organization element.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Referenceable

#add_reference, #destroy, #model, #references, #replace_with

Methods included from Comparison

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

Instance Attribute Details

#documentationPreservedLangString, NilClass (readonly)

Returns:



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

model_attr :documentation, default: nil

#idString, NilClass (readonly)

Format should match /[[[:alpha:]]_]*/ to be valid for Archimate Model exchange format

Returns:

  • (String, NilClass)


23
# File 'lib/archimate/data_model/organization.rb', line 23

model_attr :id, default: nil

#itemsArray<Object>

Returns:

  • (Array<Object>)


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

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

#nameLangString, NilClass (readonly)

LabelGroup in the XSD

Returns:



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

model_attr :name, default: nil

#organizationsArray<Organization>

item in the XSD

Returns:



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

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

#typeString, NilClass (readonly)

I believe this is used only for Archi formats

Returns:

  • (String, NilClass)


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

model_attr :type, default: nil

Instance Method Details

#other_attributesArray<AnyAttribute>

Returns:



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

model_attr :other_attributes, default: []

#other_elementsArray<AnyElement>

Returns:



43
# File 'lib/archimate/data_model/organization.rb', line 43

model_attr :other_elements, default: []

#remove(id) ⇒ Object



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

def remove(id)
  items.delete_if { |item| item.id == id }
end

#remove_reference(item) ⇒ Object



55
56
57
58
59
60
61
62
63
64
# File 'lib/archimate/data_model/organization.rb', line 55

def remove_reference(item)
  super
  case item
  when Organization
    organizations.delete(item)
  else
    items.delete(item)
    organizations.each { |org| org.remove_reference(item) }
  end
end

#replace_item_with(item, replacement) ⇒ Object



66
67
68
69
70
71
72
73
74
75
# File 'lib/archimate/data_model/organization.rb', line 66

def replace_item_with(item, replacement)
  case item
  when Organization
    organizations.delete(item)
    organizations << replacement
  else
    items.delete(item)
    items << replacement
  end
end

#to_sObject



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

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