Class ReductionRuleBase

  • All Implemented Interfaces:
    TemplateReductionRule, TemplateRule, TemplateRuleForConcept
    Direct Known Subclasses:
    TemplateReductionPatternRuleInterpreted, TemplateReductionRuleInterpreted

    public abstract class ReductionRuleBase
    extends Object
    implements TemplateReductionRule
    Default implementation all generated reduction rules shall use. Facilitates extension of TemplateReductionRule interface without affecting existing code.

    IMPLEMENTATION NOTE: present approach keeps applicability information along with rule's consequence, although to me it looks reasonable to keep them separate, i.e. MC being responsible to register rules (pure execution) rather than MC being a mere collection of complex objects (both applicable and execution aspects). Applicable concept doesn't change throughout rule's life, and thus behavior/method doesn't seem to be the best approach. However, lack of base MC implementation forces be to go with existing pattern (unless I'd like to wait another release round to introduce base MC implementation which would register rules instead of just supplying them)