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

Inherits:
ModelElement
  • Object
show all
Includes:
Identifier, ScopeContainer
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

#add_remark, #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>)


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

def children
  [
    *interfaced_items,
    *safe_children,
  ]
end

#formattedObject



76
77
78
# File 'lib/expressir/model/declarations/schema.rb', line 76

def formatted
  @formatted ||= to_s(no_remarks: true)
end

#full_sourceObject



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

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

#safe_childrenArray<Declaration>

Returns:

  • (Array<Declaration>)


50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/expressir/model/declarations/schema.rb', line 50

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

#sourceObject



80
81
82
83
84
85
86
# File 'lib/expressir/model/declarations/schema.rb', line 80

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