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)
-
(Integer)- -1, 0, or 1
Parameters:
-
other(DecisionRule) -- Another rule
def <=>(other) priority <=> other.priority end
def applies?(context)
-
(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)
-
(Decision)- The decision
Parameters:
-
context(DecisionContext) -- The decision context
def decide(context) raise NotImplementedError, "#{self.class} must implement #decide" end
def name
-
(String)-
def name self.class.name.split("::").last end
def priority
-
(Integer)- Priority (0-10)
def priority raise NotImplementedError, "#{self.class} must implement #priority" end