java.lang.Object
de.grogra.xl.impl.base.Graph
de.grogra.xl.impl.base.GraphImpl
de.grogra.xl.impl.dom.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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEdgeBits(Object source, Object target, int bits) Adds a set of edge bits from asourcenode to atargetnode.voidAdds a node to this graph extent.protected voidbooleancanEnumerateEdges(EdgeDirection dir, boolean constEdge, Serializable edge) protected voidcreateProducer(QueryState match) Creates an instance ofProducer.createQueue(QueueCollection qc, QueueDescriptor descr) voidenumerateNodes(Type type, QueryState qs, int index, MatchConsumer consumer, int arg) This methods enumerates all nodes of this graph of the given type to the givenMatchConsumervia the given query state.getRoot()Returns the root node of this graph.Returns the root node of the type graph for this graphvoidremoveEdgeBits(Object source, Object target, int bits) Removes a set of edge bits from asourcenode to atargetnode.Methods inherited from class de.grogra.xl.impl.base.GraphImpl
createInterpretiveMark, removeNodeMethods inherited from class de.grogra.xl.impl.base.Graph
allowNoninjectiveMatchesByDefault, allowNoninjectiveMatchesForNextQuery, areComparableScales, canEnumerateNodes, createMatcher, createQueryState, createThreadData, derive, enumerateEdges, enumerateSpaces, getDerivationMode, getMinimumEncoarseDepthDiff, getModel, getPredecessor, getQueues, getScaleValue, getThreadData, getTypeNode, getTypeNode, isInTypeGraph, isSameScale, setDerivationMode, sortedTypeGraph
-
Constructor Details
-
Graph
-
-
Method Details
-
canEnumerateEdges
-
createQueue
- Overrides:
createQueuein classGraphImpl
-
beginModifications
protected void beginModifications()- Specified by:
beginModificationsin classGraph
-
commitModifications
protected void commitModifications()- Specified by:
commitModificationsin classGraph
-
enumerateNodes
Description copied from interface:GraphThis methods enumerates all nodes of this graph of the given type to the givenMatchConsumervia the given query state. I.e., for every nodecof this extent that has typetype, the following statement is executed:qs.amatch (tp, c, consumer, arg);- Parameters:
type- the type of nodesqs- the query state on which theamatch-method has to be invokedindex- the index-parameter for theamatch-methodconsumer- the consumer-parameter for theamatch-methodarg- the arg-parameter for theamatch-method
-
getRoot
Description copied from interface:GraphReturns the root node of this graph.- Returns:
- the root
-
getTypeRoot
Description copied from interface:GraphReturns the root node of the type graph for this graph- Returns:
- the root of the type graph
-
addNode
Description copied from class:GraphImplAdds a node to this graph extent. This method is invoked by the XL runtime system before invocations ofGraphImpl.addEdgeBits(java.lang.Object, java.lang.Object, int). Implementations may perform tasks in preparation of the addition of edges, if necessary. -
addEdgeBits
Description copied from class:GraphImplAdds a set of edge bits from asourcenode to atargetnode. This method is invoked within the right hand sides of XL productions==>>,==>.- Specified by:
addEdgeBitsin classGraphImpl- Parameters:
source- the source node of the edgetarget- the target node of the edgebits- the edge bits that are to be added
-
removeEdgeBits
Description copied from class:GraphImplRemoves a set of edge bits from asourcenode to atargetnode. This method is invoked within the right hand sides of XL productions==>>,==>.- Specified by:
removeEdgeBitsin classGraphImpl- Parameters:
source- the source node of the edgetarget- the target node of the edgebits- the edge bits that are to be removed
-
createProducer
Description copied from interface:GraphCreates an instance ofProducer. This factory method creates an instance of a subclass ofProducerwhich will be exclusively used later on in the context of the current match represented byqs. The instance must be an instance of the class returned byCompiletimeModel.getProducerType()for the corresponding compile-time model.The usage of producers is specified by the XL programming language.
- Parameters:
match- query state which holds current match for which the producer shall produce a replacement- Returns:
- a producer for use in the context of
qs
-