class Lutaml::Xml::Decisions::DecisionRule

@abstract Subclass and implement {#applies?} and {#decide}
First rule that applies determines the decision.
Rules are evaluated in priority order.
Each rule encapsulates ONE decision criterion.
Abstract base class for namespace decision rules

def <=>(other)

Returns:
  • (Integer) - -1, 0, or 1

Parameters:
  • other (DecisionRule) -- Another rule
def <=>(other)
  priority <=> other.priority
end

def applies?(context)

Returns:
  • (Boolean) - true if this rule should be applied

Parameters:
  • context (DecisionContext) -- The decision context
def applies?(context)
  raise NotImplementedError, "#{self.class} must implement #applies?"
end

def decide(context)

Returns:
  • (Decision) - The decision

Parameters:
  • context (DecisionContext) -- The decision context
def decide(context)
  raise NotImplementedError, "#{self.class} must implement #decide"
end

def name

Returns:
  • (String) -
def name
  self.class.name.split("::").last
end

def priority

Returns:
  • (Integer) - Priority (0-10)
def priority
  raise NotImplementedError, "#{self.class} must implement #priority"
end