Class: ActiveFacts::CQL::Compiler::SubsetConstraint

Inherits:
SetConstraint show all
Defined in:
lib/activefacts/cql/compiler/constraint.rb

Instance Attribute Summary

Attributes inherited from Definition

#constellation, #tree, #vocabulary

Instance Method Summary collapse

Methods inherited from SetConstraint

#role_sequences_for_common_bindings, #warn_ignored_queries

Methods inherited from Constraint

#bind_clauses, #common_bindings, #loose_bind, #loose_bind_wherever_possible, #to_s, #warn_ignored_queries

Methods inherited from Definition

#all_bindings_in_clauses, #build_all_steps, #build_steps, #build_variables, #source, #to_s

Constructor Details

#initialize(context_note, enforcement, clauses_lists) ⇒ SubsetConstraint

Returns a new instance of SubsetConstraint.



326
327
328
329
330
# File 'lib/activefacts/cql/compiler/constraint.rb', line 326

def initialize context_note, enforcement, clauses_lists
  super context_note, enforcement, clauses_lists
  @subset_clauses = @clauses_lists[0]
  @superset_clauses = @clauses_lists[1]
end

Instance Method Details

#compileObject



332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
# File 'lib/activefacts/cql/compiler/constraint.rb', line 332

def compile
  bind_clauses
  common_bindings

  role_sequences =
    role_sequences_for_common_bindings

  @constraint =
    @constellation.SubsetConstraint(
      :new,
      :vocabulary => @vocabulary,
      :subset_role_sequence => role_sequences[0],
      :superset_role_sequence => role_sequences[1]
    )
  @enforcement.compile(@constellation, @constraint) if @enforcement
  super
end

#loose_bindingObject



350
351
352
# File 'lib/activefacts/cql/compiler/constraint.rb', line 350

def loose_binding
  loose_bind_wherever_possible
end