class HQMF::Precondition

Constants

ALL_FALSE
ALL_TRUE
AT_LEAST_ONE_FALSE
AT_LEAST_ONE_TRUE
INVERSIONS
NEGATIONS

Attributes

comments[RW]
conjunction_code[R]
id[R]
negation[RW]
preconditions[R]
reference[R]

Public Class Methods

from_json(json) click to toggle source

Create a new population criteria from a JSON hash keyed off symbols

# File lib/hqmf-model/precondition.rb, line 49
def self.from_json(json)
  preconditions = []
  id = json["id"] if json["id"]
  preconditions = json["preconditions"].map {|precondition| HQMF::Precondition.from_json(precondition)} if json["preconditions"]
  reference = Reference.new(json["reference"]) if json["reference"] 
  conjunction_code = json["conjunction_code"] if json["conjunction_code"]
  negation = json["negation"] if json["negation"]
  comments = json['comments'] if json['comments']
  
  HQMF::Precondition.new(id, preconditions, reference, conjunction_code, negation, comments)
end
new(id, preconditions, reference, conjunction_code, negation, comments=nil) click to toggle source

Create a new population criteria @param [Array#Precondition] preconditions @param [Reference] reference @param [String] conjunction_code

# File lib/hqmf-model/precondition.rb, line 31
def initialize(id, preconditions, reference, conjunction_code, negation, comments=nil)
  @preconditions = preconditions || []
  @reference = reference
  @conjunction_code = conjunction_code
  @negation = negation
  @id = id
  @comments = comments
end

Public Instance Methods

conjunction?() click to toggle source

Return true of this precondition represents a conjunction with nested preconditions or false of this precondition is a reference to a data criteria

# File lib/hqmf-model/precondition.rb, line 75
def conjunction?
  @preconditions.length>0
end
conjunction_code_with_negation() click to toggle source
# File lib/hqmf-model/precondition.rb, line 40
def conjunction_code_with_negation
  if negation
    NEGATIONS[conjunction_code]
  else
    conjunction_code
  end
end
referenced_data_criteria() click to toggle source
# File lib/hqmf-model/precondition.rb, line 79
def referenced_data_criteria
  data_criteria_ids = []
  if @preconditions.empty?
    data_criteria_ids << self.reference.id
  else
    @preconditions.each do |precondition|
      data_criteria_ids.concat(precondition.referenced_data_criteria)
    end
  end
  data_criteria_ids
end
to_json() click to toggle source
# File lib/hqmf-model/precondition.rb, line 61
def to_json
  x = nil
  json = {}
  json[:id] = self.id
  json[:reference] = self.reference.id if self.reference
  json[:preconditions] = x if x = json_array(@preconditions)
  json[:conjunction_code] = self.conjunction_code if self.conjunction_code && self.preconditions.length > 0
  json[:negation] = self.negation if self.negation
  json[:comments] = self.comments if self.comments
  json
end