Class: Ea::Sources::Qea::OperationBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ea/sources/qea/operation_builder.rb

Overview

Translates EA t_operation + t_operationparams rows into Ea::Model::Operation instances with owned Parameters.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database) ⇒ OperationBuilder

Returns a new instance of OperationBuilder.



11
12
13
# File 'lib/ea/sources/qea/operation_builder.rb', line 11

def initialize(database)
  @database = database
end

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



9
10
11
# File 'lib/ea/sources/qea/operation_builder.rb', line 9

def database
  @database
end

Instance Method Details

#build_all_for(owner_object) ⇒ Object



15
16
17
18
# File 'lib/ea/sources/qea/operation_builder.rb', line 15

def build_all_for(owner_object)
  ops = database.operations_for_object(owner_object.ea_object_id) || []
  ops.map { |row| build_one(row, owner_object) }
end

#build_one(row, owner_object) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ea/sources/qea/operation_builder.rb', line 20

def build_one(row, owner_object)
  Ea::Model::Operation.new(
    id: IdNormalizer.from_guid(row.ea_guid),
    name: row.name,
    owner_id: IdNormalizer.from_guid(owner_object.ea_guid),
    qualified_name: "#{owner_object.name}::#{row.name}",
    return_type_name: row.type,
    visibility: visibility_from_scope(row.scope),
    is_static: boolean(row.isstatic),
    is_abstract: boolean(row.abstract),
    parameters: build_parameters(row),
    annotations: AnnotationBuilder.from_note(row.notes, row.ea_guid,
                                             kind: "documentation")
  )
end