Class: ActiveFacts::CQL::Compiler::Literal

Inherits:
Object
  • Object
show all
Defined in:
lib/activefacts/cql/compiler/expression.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(literal, unit) ⇒ Literal

Returns a new instance of Literal.



388
389
390
# File 'lib/activefacts/cql/compiler/expression.rb', line 388

def initialize literal, unit
  @literal, @unit = literal, unit
end

Instance Attribute Details

#clauseObject

Returns the value of attribute clause.



385
386
387
# File 'lib/activefacts/cql/compiler/expression.rb', line 385

def clause
  @clause
end

#leading_adjectiveObject (readonly)

Returns the value of attribute leading_adjective.



386
387
388
# File 'lib/activefacts/cql/compiler/expression.rb', line 386

def leading_adjective
  @leading_adjective
end

#literalObject

Returns the value of attribute literal.



385
386
387
# File 'lib/activefacts/cql/compiler/expression.rb', line 385

def literal
  @literal
end

#objectification_ofObject (readonly)

Returns the value of attribute objectification_of.



386
387
388
# File 'lib/activefacts/cql/compiler/expression.rb', line 386

def objectification_of
  @objectification_of
end

#roleObject

Returns the value of attribute role.



385
386
387
# File 'lib/activefacts/cql/compiler/expression.rb', line 385

def role
  @role
end

#role_refObject

Returns the value of attribute role_ref.



385
386
387
# File 'lib/activefacts/cql/compiler/expression.rb', line 385

def role_ref
  @role_ref
end

#trailing_adjectiveObject (readonly)

Returns the value of attribute trailing_adjective.



386
387
388
# File 'lib/activefacts/cql/compiler/expression.rb', line 386

def trailing_adjective
  @trailing_adjective
end

#unitObject

Returns the value of attribute unit.



385
386
387
# File 'lib/activefacts/cql/compiler/expression.rb', line 385

def unit
  @unit
end

#value_constraintObject (readonly)

Returns the value of attribute value_constraint.



386
387
388
# File 'lib/activefacts/cql/compiler/expression.rb', line 386

def value_constraint
  @value_constraint
end

Instance Method Details

#bind(context) ⇒ Object



428
429
430
431
432
433
434
# File 'lib/activefacts/cql/compiler/expression.rb', line 428

def bind context
  @binding || begin
    key = "#{@player.name} #{@literal}"
    @binding = (context.bindings[key] ||= Binding.new(@player))
    @binding.refs << self
  end
end

#bindingObject



436
437
438
# File 'lib/activefacts/cql/compiler/expression.rb', line 436

def binding
  @binding
end

#identify_other_players(context) ⇒ Object



410
411
412
# File 'lib/activefacts/cql/compiler/expression.rb', line 410

def identify_other_players(context)
  identify_player context
end

#identify_player(context) ⇒ Object



414
415
416
417
418
419
420
421
422
423
424
425
426
# File 'lib/activefacts/cql/compiler/expression.rb', line 414

def identify_player context
  @player || begin
    player_name =
      case @literal
      when String; 'String'
      when Float; 'Real'
      when Numeric; 'Integer'
      when TrueClass, FalseClass; 'Boolean'
      end
    v = context.vocabulary
    @player = v.constellation.ValueType(v, player_name)
  end
end

#identify_players_with_role_name(context) ⇒ Object



406
407
408
# File 'lib/activefacts/cql/compiler/expression.rb', line 406

def identify_players_with_role_name(context)
  # Nothing to do here, move along
end

#inspectObject



396
# File 'lib/activefacts/cql/compiler/expression.rb', line 396

def inspect; to_s; end

#nested_clausesObject



394
# File 'lib/activefacts/cql/compiler/expression.rb', line 394

def nested_clauses; nil; end

#playerObject



402
403
404
# File 'lib/activefacts/cql/compiler/expression.rb', line 402

def player
  @player
end

#role_nameObject

Stubs:



393
# File 'lib/activefacts/cql/compiler/expression.rb', line 393

def role_name; nil; end

#to_sObject



398
399
400
# File 'lib/activefacts/cql/compiler/expression.rb', line 398

def to_s
  unit ? "(#{@literal.to_s} in #{unit.to_s})" : @literal.to_s
end