Class: ActiveFacts::CQL::Compiler::Ternary
- Defined in:
- lib/activefacts/cql/compiler/expression.rb
Instance Attribute Summary collapse
-
#condition ⇒ Object
Returns the value of attribute condition.
-
#false_value ⇒ Object
Returns the value of attribute false_value.
-
#true_value ⇒ Object
Returns the value of attribute true_value.
Attributes inherited from Operation
#binding, #certainty, #clause, #fact_type, #player, #role, #role_ref
Instance Method Summary collapse
- #compile(context) ⇒ Object
- #identify_player(context) ⇒ Object
-
#initialize(condition, true_value, false_value) ⇒ Ternary
constructor
A new instance of Ternary.
- #inspect ⇒ Object
- #operator ⇒ Object
- #refs ⇒ Object
- #to_s ⇒ Object
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
Returns a new instance of 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 |