Class: Expressir::Model::Declarations::Function

Inherits:
Expressir::Model::Declaration show all
Includes:
Identifier
Defined in:
lib/expressir/model/declarations/function.rb

Overview

Specified in ISO 10303-11:2004

  • section 9.5.1 Function

Instance Attribute Summary collapse

Attributes included from Identifier

#id, #remark_items, #remarks, #source

Attributes inherited from ModelElement

#parent

Instance Method Summary collapse

Methods inherited from ModelElement

#children_by_id, #find, from_hash, model_attr_accessor, model_attrs, #path, #reset_children_by_id, #to_hash, #to_liquid, #to_s

Constructor Details

#initialize(options = {}) ⇒ Function

Returns a new instance of Function.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/expressir/model/declarations/function.rb', line 32

def initialize(options = {})
  initialize_identifier(options)

  @parameters = options[:parameters] || []
  @return_type = options[:return_type]
  @types = options[:types] || []
  @entities = options[:entities] || []
  @subtype_constraints = options[:subtype_constraints] || []
  @functions = options[:functions] || []
  @procedures = options[:procedures] || []
  @constants = options[:constants] || []
  @variables = options[:variables] || []
  @statements = options[:statements] || []

  super
end

Instance Attribute Details

#constantsArray<Constant>

Returns:



16
# File 'lib/expressir/model/declarations/function.rb', line 16

model_attr_accessor :constants, 'Array<Constant>'

#entitiesArray<Entity>

Returns:



12
# File 'lib/expressir/model/declarations/function.rb', line 12

model_attr_accessor :entities, 'Array<Entity>'

#functionsArray<Function>

Returns:



14
# File 'lib/expressir/model/declarations/function.rb', line 14

model_attr_accessor :functions, 'Array<Function>'

#parametersArray<Parameter>

Returns:



9
# File 'lib/expressir/model/declarations/function.rb', line 9

model_attr_accessor :parameters, 'Array<Parameter>'

#proceduresArray<Procedure>

Returns:



15
# File 'lib/expressir/model/declarations/function.rb', line 15

model_attr_accessor :procedures, 'Array<Procedure>'

#return_typeDataType

Returns:



10
# File 'lib/expressir/model/declarations/function.rb', line 10

model_attr_accessor :return_type, 'DataType'

#statementsArray<Statement>

Returns:



18
# File 'lib/expressir/model/declarations/function.rb', line 18

model_attr_accessor :statements, 'Array<Statement>'

#subtype_constraintsArray<SubtypeConstraint>

Returns:



13
# File 'lib/expressir/model/declarations/function.rb', line 13

model_attr_accessor :subtype_constraints, 'Array<SubtypeConstraint>'

#typesArray<Type>

Returns:



11
# File 'lib/expressir/model/declarations/function.rb', line 11

model_attr_accessor :types, 'Array<Type>'

#variablesArray<Variable>

Returns:



17
# File 'lib/expressir/model/declarations/function.rb', line 17

model_attr_accessor :variables, 'Array<Variable>'

Instance Method Details

#childrenArray<Declaration>

Returns:



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

def children
  [
    *parameters,
    *types,
    *types.flat_map{|x| x.enumeration_items},
    *entities,
    *subtype_constraints,
    *functions,
    *procedures,
    *constants,
    *variables,
    *remark_items
  ]
end