Class: ActiveFacts::CQL::Compiler::ClauseMatchSideEffect
- Inherits:
-
Object
- Object
- ActiveFacts::CQL::Compiler::ClauseMatchSideEffect
- Defined in:
- lib/activefacts/cql/compiler/clause.rb
Overview
An instance of ClauseMatchSideEffects is created when the compiler matches an existing fact type. It captures the details that have to be adjusted for the match to be regarded a success.
Instance Attribute Summary collapse
-
#absorbed_followers ⇒ Object
readonly
Returns the value of attribute absorbed_followers.
-
#absorbed_precursors ⇒ Object
readonly
Returns the value of attribute absorbed_precursors.
-
#common_supertype ⇒ Object
readonly
Returns the value of attribute common_supertype.
-
#num ⇒ Object
readonly
Returns the value of attribute num.
-
#phrase ⇒ Object
readonly
Returns the value of attribute phrase.
-
#residual_adjectives ⇒ Object
readonly
Returns the value of attribute residual_adjectives.
-
#role_ref ⇒ Object
readonly
Returns the value of attribute role_ref.
Instance Method Summary collapse
- #cancel_cost(c) ⇒ Object
- #cost ⇒ Object
-
#initialize(phrase, role_ref, num, absorbed_precursors, absorbed_followers, common_supertype, residual_adjectives) ⇒ ClauseMatchSideEffect
constructor
A new instance of ClauseMatchSideEffect.
- #to_s ⇒ Object
Constructor Details
#initialize(phrase, role_ref, num, absorbed_precursors, absorbed_followers, common_supertype, residual_adjectives) ⇒ ClauseMatchSideEffect
Returns a new instance of ClauseMatchSideEffect.
787 788 789 790 791 792 793 794 795 796 797 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 787 def initialize phrase, role_ref, num, absorbed_precursors, absorbed_followers, common_supertype, residual_adjectives @phrase = phrase @role_ref = role_ref @num = num @absorbed_precursors = absorbed_precursors @absorbed_followers = absorbed_followers @common_supertype = common_supertype @residual_adjectives = residual_adjectives @cancelled_cost = 0 trace :matching_fails, "Saving side effects for #{@phrase.term}, absorbs #{@absorbed_precursors}/#{@absorbed_followers}#{@common_supertype ? ', step over supertype '+ @common_supertype.name : ''}" if @absorbed_precursors+@absorbed_followers+(@common_supertype ? 1 : 0) > 0 end |
Instance Attribute Details
#absorbed_followers ⇒ Object (readonly)
Returns the value of attribute absorbed_followers.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def absorbed_followers @absorbed_followers end |
#absorbed_precursors ⇒ Object (readonly)
Returns the value of attribute absorbed_precursors.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def absorbed_precursors @absorbed_precursors end |
#common_supertype ⇒ Object (readonly)
Returns the value of attribute common_supertype.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def common_supertype @common_supertype end |
#num ⇒ Object (readonly)
Returns the value of attribute num.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def num @num end |
#phrase ⇒ Object (readonly)
Returns the value of attribute phrase.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def phrase @phrase end |
#residual_adjectives ⇒ Object (readonly)
Returns the value of attribute residual_adjectives.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def residual_adjectives @residual_adjectives end |
#role_ref ⇒ Object (readonly)
Returns the value of attribute role_ref.
785 786 787 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 785 def role_ref @role_ref end |
Instance Method Details
#cancel_cost(c) ⇒ Object
803 804 805 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 803 def cancel_cost c @cancelled_cost += c end |
#cost ⇒ Object
799 800 801 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 799 def cost absorbed_precursors + absorbed_followers + (common_supertype ? 1 : 0) - @cancelled_cost end |
#to_s ⇒ Object
807 808 809 |
# File 'lib/activefacts/cql/compiler/clause.rb', line 807 def to_s "#{@phrase.inspect} absorbs #{@absorbed_precursors||0}/#{@absorbed_followers||0} at #{@num}#{@common_supertype && ' super '+@common_supertype.name}#{@residual_adjectives ? ' with residual adjectives' : ''}" end |