Class: ActiveFacts::CQL::Compiler::Ternary
- Inherits:
-
Operation
- Object
- Operation
- ActiveFacts::CQL::Compiler::Ternary
show all
- Defined in:
- lib/activefacts/cql/compiler/expression.rb
Instance Attribute Summary collapse
Attributes inherited from Operation
#binding, #certainty, #clause, #fact_type, #player, #role, #role_ref
Instance Method Summary
collapse
Methods inherited from Operation
#bind, #conjunction, #identify_other_players, #identify_players_with_role_name, #is_equality_comparison, #is_naked_object_type, #leading_adjective, #literal, #match_existing_fact_type, #nested_clauses, #objectification_of, #objectified_as, #operands, #result_type_name, #result_value_type, #role_name, #side_effects, #trailing_adjective, #value_constraint
Constructor Details
#initialize(condition, true_value, false_value) ⇒ Ternary
544
545
546
547
548
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 544
def initialize condition, true_value, false_value
@condition = condition
@true_value = true_value
@false_value = false_value
end
|
Instance Attribute Details
#condition ⇒ Object
Returns the value of attribute condition.
543
544
545
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 543
def condition
@condition
end
|
#false_value ⇒ Object
Returns the value of attribute false_value.
543
544
545
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 543
def false_value
@false_value
end
|
#true_value ⇒ Object
Returns the value of attribute true_value.
543
544
545
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 543
def true_value
@true_value
end
|
Instance Method Details
#compile(context) ⇒ Object
571
572
573
574
575
576
577
578
579
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 571
def compile(context)
op1 = @condition.compile(context)
op2 = @true_value.compile(context)
op3 = @false_value.compile(context)
context.vocabulary.constellation.Expression(
:new, :expression_type => 'Ternary', :operator => operator,
:first_operand_expression => op1, :second_operand_expression => op2, :third_operand_expression => op3
)
end
|
#identify_player(context) ⇒ Object
558
559
560
561
562
563
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 558
def identify_player context
@player || begin
v = context.vocabulary
@player = @true_value.player
end
end
|
#inspect ⇒ Object
565
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 565
def inspect; to_s; end
|
#operator ⇒ Object
554
555
556
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 554
def operator
'?'
end
|
#refs ⇒ Object
550
551
552
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 550
def refs
[@condition, @true_value, @false_value]
end
|
#to_s ⇒ Object
567
568
569
|
# File 'lib/activefacts/cql/compiler/expression.rb', line 567
def to_s
"TERNARY(#{@condition.to_s}, #{@true_value.to_s}, #{@false_value.to_s})"
end
|