org.eclipse.viatra.query.runtime.rete.single

## Class InequalityFilterNode

- java.lang.Object
- - org.eclipse.viatra.query.runtime.rete.network.BaseNode
  - - org.eclipse.viatra.query.runtime.rete.network.StandardNode
    - - org.eclipse.viatra.query.runtime.rete.single.SingleInputNode
      - - org.eclipse.viatra.query.runtime.rete.single.FilterNode
        - - org.eclipse.viatra.query.runtime.rete.single.InequalityFilterNode

- All Implemented Interfaces:
    NetworkStructureChangeSensitiveNode, Node, Receiver, Supplier, Tunnel

      public class InequalityFilterNode
      extends FilterNode

  This node filters patterns according to equalities and inequalities of elements. The 'subject' element is asserted to be different from the elements given by the inequalityMask.

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.single.SingleInputNode

      `mailbox, parent`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.StandardNode

      `childMailboxes, children`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode

      `nodeId, reteContainer, tag, traceInfos`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `InequalityFilterNode(ReteContainer reteContainer, int subject, TupleMask inequalityMask)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `check(Tuple ps)` Abstract filtering predicate.

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.single.FilterNode

      `pullInto, pullIntoWithTimeline, update`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.single.SingleInputNode

      `appendParent, assignTraceInfo, getCommunicationTracker, getMailbox, getParents, instantiateMailbox, propagatePullInto, propagatePullIntoWithTimestamp, removeParent`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.StandardNode

      `appendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, networkStructureChanged, propagateUpdate, removeChild`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode

      `acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Supplier

      `appendChild, constructIndex, getPulledContents, getPulledContents, getReceivers, removeChild`

    - ### Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Node

      `acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfos, setTag`

- - ### Constructor Detail

    - #### InequalityFilterNode

          public InequalityFilterNode(ReteContainer reteContainer,
                                      int subject,
                                      TupleMask inequalityMask)

      Parameters:
        `reteContainer` -
        `subject` - the index of the element that should be compared.
        `inequalityMask` - the indices of elements that should be different from the subjectIndex.

  - ### Method Detail

    - #### check

          public boolean check(Tuple ps)

      Description copied from class: `FilterNode`
      Abstract filtering predicate. Expected to be stateless.
      Specified by:
        `check` in class `FilterNode`
      Parameters:
        `ps` - the matching to be checked.
      Returns:
        true if and only if the parameter matching is allowed to pass through this node.