Class: Expressir::Model::Declarations::Schema

Inherits:
ModelElement
  • Object
show all
Includes:
Identifier
Defined in:
lib/expressir/model/declarations/schema.rb

Overview

Specified in ISO 10303-11:2004

  • section 9.3 Schema

Constant Summary

Constants inherited from ModelElement

ModelElement::POLYMORPHIC_CLASS_MAP, ModelElement::SKIP_ATTRIBUTES

Instance Attribute Summary

Attributes inherited from ModelElement

#parent

Instance Method Summary collapse

Methods included from Identifier

included

Methods inherited from ModelElement

#children_by_id, #find, #initialize, #path, #reset_children_by_id, #to_s

Constructor Details

This class inherits a constructor from Expressir::Model::ModelElement

Instance Method Details

#childrenArray<Declaration>

Returns:

  • (Array<Declaration>)


58
59
60
61
62
63
# File 'lib/expressir/model/declarations/schema.rb', line 58

def children
  [
    *interfaced_items,
    *safe_children,
  ]
end

#full_sourceObject



65
66
67
# File 'lib/expressir/model/declarations/schema.rb', line 65

def full_source
  Expressir::Express::Formatter.format(self)
end

#safe_childrenArray<Declaration>

Returns:

  • (Array<Declaration>)


43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/expressir/model/declarations/schema.rb', line 43

def safe_children
  [
    *constants,
    *types,
    *types&.flat_map(&:enumeration_items),
    *entities,
    *subtype_constraints,
    *functions,
    *rules,
    *procedures,
    *remark_items,
  ]
end

#sourceObject



69
70
71
72
73
74
75
# File 'lib/expressir/model/declarations/schema.rb', line 69

def source
  formatter = Class.new(Expressir::Express::Formatter) do
    include Expressir::Express::SchemaHeadFormatter
    include Expressir::Express::HyperlinkFormatter
  end
  formatter.format(self)
end