Class CountingTcRelation<V>

java.lang.Object
tools.refinery.interpreter.rete.itc.alg.counting.CountingTcRelation<V>
Type Parameters:
V -
All Implemented Interfaces:
ITcRelation<V>

public class CountingTcRelation<V> extends Object implements ITcRelation<V>
Transitive closure relation implementation for the Counting algorithm.
  • Constructor Details

    • CountingTcRelation

      protected CountingTcRelation(boolean backwardIndexing)
  • Method Details

    • isEmpty

      protected boolean isEmpty()
    • clear

      protected void clear()
    • union

      protected void union(CountingTcRelation<V> rA)
    • getCount

      public int getCount(V source, V target)
    • addTuple

      public boolean addTuple(V source, V target, int count)
      Returns true if the tc relation did not contain previously such a tuple that is defined by (source,target), false otherwise (in this case count is incremented with the given count parameter).
      Parameters:
      source - the source of the tuple
      target - the target of the tuple
      count - the count of the tuple, must be positive
      Returns:
      true if the relation did not contain previously the tuple
    • updateTuple

      public boolean updateTuple(V source, V target, boolean isInsertion)
      Derivation count of the tuple (source,target) is incremented or decremented. Returns true iff updated to / from zero derivation count.
      Since:
      1.7
    • deleteTupleEnd

      public void deleteTupleEnd(V deleted)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getTupleEnds

      public Set<V> getTupleEnds(V source)
      Description copied from interface: ITcRelation
      Returns the set of nodes that are reachable from the given node.
      Specified by:
      getTupleEnds in interface ITcRelation<V>
      Parameters:
      source - the starting node
      Returns:
      the set of reachable nodes
    • getTupleStarts

      public Set<V> getTupleStarts(V target)
      Returns the set of nodes from which the target node is reachable, if already computed.
      Parameters:
      target - the target node
      Returns:
      the set of source nodes
      Throws:
      UnsupportedOperationException - if backwards index not computed
    • getTupleStarts

      public Set<V> getTupleStarts()
      Description copied from interface: ITcRelation
      Returns the starting nodes from a transitive closure relation.
      Specified by:
      getTupleStarts in interface ITcRelation<V>
      Returns:
      the set of starting nodes
    • containsTuple

      public boolean containsTuple(V source, V target)
      Returns true if a (source, target) node is present in the transitive closure relation, false otherwise.
      Parameters:
      source - the source node
      target - the target node
      Returns:
      true if tuple is present, false otherwise
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • createFrom

      public static <V> CountingTcRelation<V> createFrom(IBiDirectionalGraphDataSource<V> gds)