Class RuleImpl.UniqueOnState

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected UniqueOnState()  
    • Constructor Detail

      • UniqueOnState

        protected UniqueOnState()
    • Method Detail

      • createUniqueMapping

        public void createUniqueMapping​(TraceLink trace)
        Creates a unique trace mapping entry for the source values in trace, if applicable.
        Specified by:
        createUniqueMapping in class RuleImpl.UniqueState
        Parameters:
        trace - the trace element with source values
      • checkAndCreateUniqueMapping

        public void checkAndCreateUniqueMapping​(TracedRule tr,
                                                org.eclipse.emf.common.util.EList<SourceElement> ses)
        Checks for existence and creates a unique trace mapping entry for the source values in ses, if applicable.
        Specified by:
        checkAndCreateUniqueMapping in class RuleImpl.UniqueState
        Parameters:
        tr - the traced rule to add the unique traces to
        ses - the source values that serve as a the unique trace key
      • matchFor

        public boolean matchFor​(StackFrame frame,
                                java.lang.Object[] values)
        Matches this rule against values, and records a match in ExecEnv.getMatches() in case of a match. In case of a unique rule, this method will not match if the rule has already matched against values before.
        Specified by:
        matchFor in class RuleImpl.UniqueState
        Parameters:
        frame - the stack frame context
        values - the source values to match against
        Returns:
        true iff this rule matches against values
      • matchFor

        public boolean matchFor​(StackFrame frame,
                                java.util.Map<java.lang.String,​java.lang.Object> valuesMap,
                                java.lang.Object[] values)
        Matches this rule against values, and records a match in ExecEnv.getMatches() in case of a match. In case of a unique rule, this method will not match if the rule has already matched against values before.
        Specified by:
        matchFor in class RuleImpl.UniqueState
        Parameters:
        frame - the stack frame context
        valuesMap - the map of all values, including super-rule elements
        values - the source values to match against
        Returns:
        true iff this rule matches against values
      • getUniqueTrace

        public TraceLink getUniqueTrace​(StackFrame frame,
                                        java.lang.Object[] values)
        Returns the unique rule application trace for values, if applicable.
        Overrides:
        getUniqueTrace in class RuleImpl.UniqueState
        Parameters:
        frame - the stack frame context
        values - the source values for the trace
        Returns:
        the unique rule application trace, or null
      • applyOne

        public java.lang.Object applyOne​(StackFrame frame,
                                         TraceLink trace)
        Applies #getRule() to trace
        Overrides:
        applyOne in class RuleImpl.UniqueState
        Parameters:
        frame - the stack frame in which to execute the applier and post-apply
        trace - the trace link with values to which to apply the rule
        Returns:
        the rule application result