de.grogra.xl.impl.base
Class GraphImpl

java.lang.Object
  extended by de.grogra.xl.impl.base.Graph
      extended by de.grogra.xl.impl.base.GraphImpl
All Implemented Interfaces:
Graph, java.lang.Cloneable
Direct Known Subclasses:
Graph, Graph

public abstract class GraphImpl
extends Graph


Nested Class Summary
 
Nested classes/interfaces inherited from class de.grogra.xl.impl.base.Graph
Graph.QState, Graph.ThreadData
 
Field Summary
 
Fields inherited from class de.grogra.xl.impl.base.Graph
EXCLUDE_DELETED_FLAG, INTERPRETIVE_FLAG, MODE_MASK, PARALLEL_MODE, PARALLEL_NON_DETERMINISTIC_MODE, SEQUENTIAL_MODE, SEQUENTIAL_NON_DETERMINISTIC_MODE
 
Constructor Summary
GraphImpl(RuntimeModel model)
           
 
Method Summary
abstract  void addEdgeBits(java.lang.Object source, java.lang.Object target, int bits)
          Adds a set of edge bits from a source node to a target node.
abstract  void addNode(java.lang.Object node)
          Adds a node to this graph extent.
 java.lang.Object createInterpretiveMark()
           
 GraphQueue createQueue(QueueCollection qc, QueueDescriptor descr)
           
abstract  void removeEdgeBits(java.lang.Object source, java.lang.Object target, int bits)
          Removes a set of edge bits from a source node to a target node.
 void removeNode(java.lang.Object node)
           
 
Methods inherited from class de.grogra.xl.impl.base.Graph
allowNoninjectiveMatchesByDefault, allowNoninjectiveMatchesForNextQuery, beginModifications, canEnumerateNodes, commitModifications, createMatcher, createQueryState, createThreadData, derive, enumerateEdges, getDerivationMode, getModel, getPredecessor, getQueues, getThreadData, setDerivationMode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.grogra.xl.query.Graph
canEnumerateEdges, createProducer, enumerateNodes, getRoot
 

Constructor Detail

GraphImpl

public GraphImpl(RuntimeModel model)
Method Detail

addEdgeBits

public abstract void addEdgeBits(java.lang.Object source,
                                 java.lang.Object target,
                                 int bits)
Adds a set of edge bits from a source node to a target node. This method is invoked within the right hand sides of XL productions ==>>, ==>.

Parameters:
source - the source node of the edge
target - the target node of the edge
bits - the edge bits that are to be added

addNode

public abstract void addNode(java.lang.Object node)
Adds a node to this graph extent. This method is invoked by the XL runtime system before invocations of addEdgeBits(java.lang.Object, java.lang.Object, int). Implementations may perform tasks in preparation of the addition of edges, if necessary.

Parameters:
node - the node for which edges will be added later on

createInterpretiveMark

public java.lang.Object createInterpretiveMark()

createQueue

public GraphQueue createQueue(QueueCollection qc,
                              QueueDescriptor descr)
Specified by:
createQueue in class Graph

removeEdgeBits

public abstract void removeEdgeBits(java.lang.Object source,
                                    java.lang.Object target,
                                    int bits)
Removes a set of edge bits from a source node to a target node. This method is invoked within the right hand sides of XL productions ==>>, ==>.

Parameters:
source - the source node of the edge
target - the target node of the edge
bits - the edge bits that are to be removed

removeNode

public void removeNode(java.lang.Object node)