Click or drag to resize

LGSPNamedGraph Class

An implementation of the INamedGraph interface.
Inheritance Hierarchy
SystemObject
  de.unika.ipd.grGen.libGrBaseGraph
    de.unika.ipd.grGen.lgspLGSPGraph
      de.unika.ipd.grGen.lgspLGSPNamedGraph

Namespace:  de.unika.ipd.grGen.lgsp
Assembly:  lgspBackend (in lgspBackend.dll) Version: GrGen.NET 7.2
Syntax
C#
public class LGSPNamedGraph : LGSPGraph, 
	INamedGraph, IGraph

The LGSPNamedGraph type exposes the following members.

Constructors
  NameDescription
Public methodLGSPNamedGraph(LGSPGraph)
Copy and extend constructor, creates a named graph from a normal graph. Initializes the name maps with anonymous names in the form "$" + GetNextName()
Public methodLGSPNamedGraph(LGSPGraph, IDictionaryIGraphElement, IGraphElement)
Copy and extend constructor, creates a named graph from a normal graph. Initializes the name maps with anonymous names in the form "$" + GetNextName()
Public methodLGSPNamedGraph(LGSPGraph, String)
Copy and extend constructor, creates a named graph from a normal graph. Initializes the name maps with the names provided in a given attribute each graph element must have
Public methodLGSPNamedGraph(LGSPNamedGraph, String)
Copy constructor.
Public methodLGSPNamedGraph(IGraphModel, IGlobalVariables, Int32)
Constructs an LGSPNamedGraph object with the given model and capacity, and an automatically generated name.
Public methodLGSPNamedGraph(LGSPGraph, String, IDictionaryIGraphElement, IGraphElement)
Copy and extend constructor, creates a named graph from a normal graph. Initializes the name maps with the names provided in a given attribute each graph element must have
Public methodLGSPNamedGraph(LGSPNamedGraph, String, IDictionaryIGraphElement, IGraphElement)
Copy constructor.
Public methodLGSPNamedGraph(IGraphModel, IGlobalVariables, String, Int32)
Constructs an LGSPNamedGraph object with the given model, name, and capacity.
Top
Properties
  NameDescription
Public propertyChangesCounter
Returns a counter of the number of changes that occured since the graph was created. If it's different since last time you visited, the graph has changed (but it may be back again in the original state). Only graph structure changes are counted, attribute changes are not included.
(Inherited from LGSPGraph.)
Public propertyCustomCommandsAndDescriptions
The graph-backend dependent commands that are available, and a description of each command.
(Inherited from LGSPGraph.)
Public propertyEdges (Inherited from BaseGraph.)
Public propertyGlobalVariables
The global variables of the graph rewrite system; convenience access to save parameter passing.
(Inherited from LGSPGraph.)
Public propertyGraphId (Inherited from LGSPGraph.)
Public propertyIndices
The indices associated with the graph.
(Inherited from LGSPGraph.)
Public propertyModel
The model associated with the graph.
(Inherited from LGSPGraph.)
Public propertyName
A name associated with the graph.
(Inherited from LGSPGraph.)
Public propertyNodes (Inherited from BaseGraph.)
Public propertyNumEdges (Inherited from BaseGraph.)
Public propertyNumNodes (Inherited from BaseGraph.)
Public propertyReuseOptimization
If true (the default case), elements deleted during a rewrite may be reused in the same rewrite. As a result new elements may not be discriminable anymore from already deleted elements using object equality, hash maps, etc. In cases where this is needed this optimization should be disabled.
(Inherited from LGSPGraph.)
Public propertyUniquenessHandler
The uniqueness handler associated with the graph.
(Inherited from LGSPGraph.)
Top
Methods
  NameDescription
Public methodAddEdge(IEdge) (Overrides LGSPGraphAddEdge(IEdge).)
Public methodAddEdge(LGSPEdge) (Overrides LGSPGraphAddEdge(LGSPEdge).)
Public methodAddEdge(IEdge, String)
Public methodAddEdge(LGSPEdge, String)
Public methodAddEdge(EdgeType, LGSPNode, LGSPNode) (Overrides LGSPGraphAddEdge(EdgeType, LGSPNode, LGSPNode).)
Public methodAddEdge(EdgeType, INode, INode) (Overrides LGSPGraphAddEdge(EdgeType, INode, INode).)
Public methodAddEdge(EdgeType, LGSPNode, LGSPNode, String)
Public methodAddEdge(EdgeType, INode, INode, String)
Public methodAddEdgeWithoutEvents
Adds an existing edge to this graph. The graph may not already contain the edge! The edge may not be connected to any other elements! Intended only for undo, clone, retyping and internal use!
(Inherited from LGSPGraph.)
Public methodAddLGSPNode(NodeType) (Overrides LGSPGraphAddLGSPNode(NodeType).)
Public methodAddLGSPNode(NodeType, String)
Public methodAddNode(INode) (Overrides LGSPGraphAddNode(INode).)
Public methodAddNode(LGSPNode) (Overrides LGSPGraphAddNode(LGSPNode).)
Public methodAddNode(NodeType) (Overrides LGSPGraphAddNode(NodeType).)
Public methodAddNode(INode, String)
Public methodAddNode(LGSPNode, String)
Public methodAddNode(NodeType, String)
Public methodAddNodeWithoutEvents
Adds an existing node to this graph. The graph may not already contain the node! The edge may not be connected to any other elements! Intended only for undo, clone, retyping and internal use!
(Inherited from LGSPGraph.)
Public methodAllocateFurtherIsomorphySpaceNestingLevelForParallelizedMatching (Inherited from LGSPGraph.)
Public methodAllocateVisitedFlag
Allocates a visited flag on the graph elements.
(Inherited from LGSPGraph.)
Public methodAnalyzeGraph
Analyzes the graph. The calculated data is used to generate good searchplans for the current graph.
(Inherited from LGSPGraph.)
Public methodCanonize
Returns a canonical representation of the graph as a string
(Inherited from LGSPGraph.)
Public methodChangedEdgeAttribute (Inherited from BaseGraph.)
Public methodChangedNodeAttribute (Inherited from BaseGraph.)
Public methodChangingEdgeAttribute (Inherited from BaseGraph.)
Public methodChangingNodeAttribute (Inherited from BaseGraph.)
Public methodChangingObjectAttribute (Inherited from BaseGraph.)
Public methodCheck (Inherited from LGSPGraph.)
Public methodCheckEdgeAlreadyInTypeRinglist
Checks if the given edge is already available in its type ringlist
(Inherited from LGSPGraph.)
Public methodCheckEmptyFlags
Checks if the matching state flags in the graph are not set, as they should be in case no matching is undereway
(Inherited from LGSPGraph.)
Public methodCheckInOutRinglistsBroken
Checks whether the incoming or outgoing ringlists of the given node are broken. Use for debugging purposes.
(Inherited from LGSPGraph.)
Public methodCheckNodeAlreadyInTypeRinglist
Checks if the given node is already available in its type ringlist
(Inherited from LGSPGraph.)
Public methodCheckTypeRinglistBroken(LGSPEdge)
Checks whether the type ringlist starting at the given head edge is broken. Use for debugging purposes.
(Inherited from LGSPGraph.)
Public methodCheckTypeRinglistBroken(LGSPNode)
Checks whether the type ringlist starting at the given head node is broken. Use for debugging purposes.
(Inherited from LGSPGraph.)
Public methodCheckTypeRinglistsBroken
Checks whether the type ringlists are broken. Use for debugging purposes.
(Inherited from LGSPGraph.)
Public methodClear (Overrides LGSPGraphClear.)
Public methodClearingGraph
Fires an OnClearingGraph event.
(Inherited from BaseGraph.)
Public methodClone(String) (Overrides LGSPGraphClone(String).)
Public methodClone(String, IDictionaryIGraphElement, IGraphElement) (Overrides LGSPGraphClone(String, IDictionaryIGraphElement, IGraphElement).)
Public methodCloneAndAssignNames
Duplicates a graph, assigning names. The new graph will use the same model as the other Open transaction data will not be cloned.
(Inherited from LGSPGraph.)
Public methodCloneNamed(String)
Public methodCloneNamed(String, IDictionaryIGraphElement, IGraphElement)
Public methodCreateEmptyEquivalent (Overrides LGSPGraphCreateEmptyEquivalent(String).)
Public methodCustom
Does graph-backend dependent stuff.
(Inherited from LGSPGraph.)
Protected methodDifferentElementWithName
returns whether another element than the one given already bears the name
Public methodDoName
Initializes the name maps with anonymous names in the form "$" + GetNextName()
Public methodDoName(String)
Public methodEdgeAdded
Fires an OnEdgeAdded event.
(Inherited from BaseGraph.)
Public methodEnsureSufficientIsomorphySpacesForParallelizedMatchingAreAvailable (Inherited from LGSPGraph.)
Public methodFreeVisitedFlag
Frees a visited flag. This is a safe but O(n) operation, as it resets the visited flag in the graph.
(Inherited from LGSPGraph.)
Public methodFreeVisitedFlagNonReset
Frees a clean visited flag. This is an O(1) but potentially unsafe operation. Attention! A marked element stays marked, so a later allocation hands out a dirty visited flag! Use only if you can ensure that all elements of that flag are unmarked before calling.
(Inherited from LGSPGraph.)
Public methodGetAllocatedVisitedFlags
Returns the ids of the allocated visited flags.
(Inherited from LGSPGraph.)
Public methodGetCompatibleEdges
Enumerates all edges compatible to the given edge type.
(Inherited from LGSPGraph.)
Public methodGetCompatibleNodes
Enumerates all nodes compatible to the given node type.
(Inherited from LGSPGraph.)
Public methodGetEdge(Int32)
Gets the edge for the given id. Only available if the unique index was declared in the model.
(Inherited from LGSPGraph.)
Public methodGetEdge(String)
Public methodGetEdgeType
Returns the edge type with the given name.
(Inherited from BaseGraph.)
Public methodGetElementName
Public methodGetExactEdges
Enumerates all edges with the exact given edge type.
(Inherited from LGSPGraph.)
Public methodGetExactNodes
Enumerates all nodes with the exact given node type.
(Inherited from LGSPGraph.)
Public methodGetGraphElement(Int32)
Gets the graph element for the given unique id. Only available if the unique index was declared in the model.
(Inherited from LGSPGraph.)
Public methodGetGraphElement(String)
Public methodGetIsomorph
Returns the graph from the set of graphs given that is isomorphic to this graph (including the attribute values), or null if no such graph exists If a graph changed only in attribute values since the last comparison, results will be wrong! (Do a fake node insert and removal to ensure the graph is recognized as having changed.) Don't call from a parallelized matcher!
(Inherited from LGSPGraph.)
Public methodGetNode(Int32)
Gets the node for the given unique id. Only available if the unique index was declared in the model.
(Inherited from LGSPGraph.)
Public methodGetNode(String)
Public methodGetNodeType
Returns the node type with the given name.
(Inherited from BaseGraph.)
Public methodGetNumCompatibleEdges
Returns the number of edges compatible to the given edge type.
(Inherited from LGSPGraph.)
Public methodGetNumCompatibleNodes
Returns the number of nodes compatible to the given node type.
(Inherited from LGSPGraph.)
Public methodGetNumExactEdges
Returns the number of edges with the exact given edge type.
(Inherited from LGSPGraph.)
Public methodGetNumExactNodes
Returns the number of nodes with the exact given node type.
(Inherited from LGSPGraph.)
Public methodGetSameStructure
Returns the graph from the set of graphs given that is isomorphic to this graph (neglecting the attribute values, only structurally), or null if no such graph exists Don't call from a parallelized matcher!
(Inherited from LGSPGraph.)
Public methodHasSameStructure(IGraph)
Returns whether this graph is isomorph to that graph, neglecting the attribute values, only structurally The other graph we check for isomorphy against, neglecting attribute values

Return Value

Type: 
true if that is isomorph (regarding structure) to this, false otherwise
(Inherited from LGSPGraph.)
Public methodHasSameStructure(IDictionaryIGraph, SetValueType)
Returns whether this graph is isomorph to any of the set of graphs given, neglecting the attribute values, only structurally Don't call from a parallelized matcher!
(Inherited from LGSPGraph.)
Public methodIsInternallyVisited(IGraphElement)
Returns whether the given graph element has been internally visited. (Used for computing reachability.)
(Inherited from LGSPGraph.)
Public methodIsInternallyVisited(IGraphElement, Int32)
Returns whether the given graph element has been internally visited. (Used for computing reachability when employed from a parallelized matcher executed by the thread pool.)
(Inherited from LGSPGraph.)
Public methodIsIsomorph(IGraph)
Returns whether this graph is isomorph to that graph (including the attribute values) If a graph changed only in attribute values since the last comparison, results will be wrong! (Do a fake node insert and removal to ensure the graph is recognized as having changed.)
(Inherited from LGSPGraph.)
Public methodIsIsomorph(IDictionaryIGraph, SetValueType)
Returns whether this graph is isomorph to any of the set of graphs given (including the attribute values) If a graph changed only in attribute values since the last comparison, results will be wrong! (Do a fake node insert and removal to ensure the graph is recognized as having changed.) Don't call from a parallelized matcher!
(Inherited from LGSPGraph.)
Public methodIsVisited
Returns whether the given graph element has been visited.
(Inherited from LGSPGraph.)
Public methodMerge(INode, INode)
Public methodMerge(INode, INode, String)
Merges the source node into the target node, i.e. all edges incident to the source node are redirected to the target node, then the source node is deleted.
(Inherited from LGSPGraph.)
Public methodMerge(LGSPNode, LGSPNode, String)
Merges the source node into the target node, i.e. all edges incident to the source node are redirected to the target node, then the source node is deleted.
(Inherited from LGSPGraph.)
Public methodMoveHeadAfter(LGSPEdge)
Moves the type list head of the given edge after the given edge. Part of the "list trick".
(Inherited from LGSPGraph.)
Public methodMoveHeadAfter(LGSPNode)
Moves the type list head of the given node after the given node. Part of the "list trick".
(Inherited from LGSPGraph.)
Public methodNodeAdded
Fires an OnNodeAdded event.
(Inherited from BaseGraph.)
Public methodObjectCreated
Fires an OnObjectCreated event.
(Inherited from BaseGraph.)
Public methodReallocateVisitedFlag
Called by the transaction manager on flags it reserved from getting handed out again during valloc, when the transaction is rolled back, and the vfree is undone by a realloc.
(Inherited from LGSPGraph.)
Public methodRedirectingEdge
Fires an OnRedirectingEdge event.
(Inherited from BaseGraph.)
Public methodRedirectSource(IEdge, INode)
Public methodRedirectSource(IEdge, INode, String)
Changes the source node of the edge from the old source to the given new source.
(Inherited from LGSPGraph.)
Public methodRedirectSource(LGSPEdge, LGSPNode, String)
Changes the source node of the edge from the old source to the given new source.
(Inherited from LGSPGraph.)
Public methodRedirectSourceAndTarget(IEdge, INode, INode)
Public methodRedirectSourceAndTarget(IEdge, INode, INode, String, String)
Changes the source of the edge from the old source to the given new source, and changes the target node of the edge from the old target to the given new target.
(Inherited from LGSPGraph.)
Public methodRedirectSourceAndTarget(LGSPEdge, LGSPNode, LGSPNode, String, String)
Changes the source of the edge from the old source to the given new source, and changes the target node of the edge from the old target to the given new target.
(Inherited from LGSPGraph.)
Public methodRedirectTarget(IEdge, INode)
Public methodRedirectTarget(IEdge, INode, String)
Changes the target node of the edge from the old target to the given new target.
(Inherited from LGSPGraph.)
Public methodRedirectTarget(LGSPEdge, LGSPNode, String)
Changes the target node of the edge from the old target to the given new target.
(Inherited from LGSPGraph.)
Public methodRemove(IEdge) (Overrides LGSPGraphRemove(IEdge).)
Public methodRemove(INode) (Overrides LGSPGraphRemove(INode).)
Public methodRemoveEdges
Removes all edges from the given node.
(Inherited from LGSPGraph.)
Public methodRemovingEdge
Fires an OnRemovingEdge event.
(Inherited from BaseGraph.)
Public methodRemovingEdges
Fires an OnRemovingEdges event.
(Inherited from BaseGraph.)
Public methodRemovingNode
Fires an OnRemovingNode event.
(Inherited from BaseGraph.)
Public methodReplaceEdge
Replaces a given edge by another one. Source and target node are transferred to the new edge, but the new edge must already have source and target set to these nodes. The new edge is added to the graph, the old edge is removed. A SettingEdgeType event is generated before. The attributes are not touched. This function is used for retyping.
(Inherited from LGSPGraph.)
Public methodReplaceNode
Replaces a given node by another one. All incident edges and variables are transferred to the new node. The attributes are not touched. This function is used for retyping.
(Inherited from LGSPGraph.)
Public methodReserveVisitedFlag
Called by the transaction manager just when it gets notified about a vfree. The visited flag freed must be reserved until the transaction finished, cause otherwise it might be impossible for the transaction manager to roll the vfree back with a valloc; that may happen if the flag is handed out again in a succeeding valloc, during a transaction pause.
(Inherited from LGSPGraph.)
Public methodResetVisitedFlag
Resets the visited flag with the given ID on all graph elements, if necessary.
(Inherited from LGSPGraph.)
Public methodRetype(IEdge, EdgeType) (Inherited from LGSPGraph.)
Public methodRetype(INode, NodeType) (Inherited from LGSPGraph.)
Public methodRetype(LGSPEdge, EdgeType) (Overrides LGSPGraphRetype(LGSPEdge, EdgeType).)
Public methodRetype(LGSPNode, NodeType) (Overrides LGSPGraphRetype(LGSPNode, NodeType).)
Public methodRetypingEdge
Fires an OnRetypingEdge event.
(Inherited from BaseGraph.)
Public methodRetypingNode
Fires an OnRetypingNode event.
(Inherited from BaseGraph.)
Public methodSetElementName
Public methodSetElementPrefixName
Public methodSetInternallyVisited(IGraphElement, Boolean)
Sets the internal-use visited flag of the given graph element. (Used for computing reachability.)
(Inherited from LGSPGraph.)
Public methodSetInternallyVisited(IGraphElement, Boolean, Int32)
Sets the internal-use visited flag of the given graph element. (Used for computing reachability when employed from a parallelized matcher executed by the thread pool.)
(Inherited from LGSPGraph.)
Public methodSettingAddedEdgeNames (Inherited from BaseGraph.)
Public methodSettingAddedNodeNames (Inherited from BaseGraph.)
Public methodSettingVisited
Fires an OnSettingVisited event.
(Inherited from BaseGraph.)
Public methodSetVisited
Sets the visited flag of the given graph element.
(Inherited from LGSPGraph.)
Public methodToString (Overrides LGSPGraphToString.)
Public methodUnreserveVisitedFlag
Called by the transaction manager on flags it reserved from getting handed out again during valloc, when the transaction finished and it is safe to return those flags again on valloc.
(Inherited from LGSPGraph.)
Public methodValidate (Inherited from BaseGraph.)
Public methodVisitedAlloc
Fires an OnVisitedAlloc event.
(Inherited from BaseGraph.)
Public methodVisitedFree
Fires an OnVisitedFree event.
(Inherited from BaseGraph.)
Top
Events
  NameDescription
Public eventOnChangedEdgeAttribute (Inherited from BaseGraph.)
Public eventOnChangedNodeAttribute (Inherited from BaseGraph.)
Public eventOnChangingEdgeAttribute (Inherited from BaseGraph.)
Public eventOnChangingNodeAttribute (Inherited from BaseGraph.)
Public eventOnChangingObjectAttribute (Inherited from BaseGraph.)
Public eventOnClearingGraph (Inherited from BaseGraph.)
Public eventOnEdgeAdded (Inherited from BaseGraph.)
Public eventOnNodeAdded (Inherited from BaseGraph.)
Public eventOnObjectCreated (Inherited from BaseGraph.)
Public eventOnRedirectingEdge (Inherited from BaseGraph.)
Public eventOnRemovingEdge (Inherited from BaseGraph.)
Public eventOnRemovingEdges (Inherited from BaseGraph.)
Public eventOnRemovingNode (Inherited from BaseGraph.)
Public eventOnRetypingEdge (Inherited from BaseGraph.)
Public eventOnRetypingNode (Inherited from BaseGraph.)
Public eventOnSettingAddedEdgeNames (Inherited from BaseGraph.)
Public eventOnSettingAddedNodeNames (Inherited from BaseGraph.)
Public eventOnSettingVisited (Inherited from BaseGraph.)
Public eventOnVisitedAlloc (Inherited from BaseGraph.)
Public eventOnVisitedFree (Inherited from BaseGraph.)
Top
Fields
  NameDescription
Public fieldchangesCounterAtLastAnalyze (Inherited from LGSPGraph.)
Public fieldchangesCounterAtLastCanonize (Inherited from LGSPGraph.)
Protected fieldcustomCommandsToDescriptions (Inherited from LGSPGraph.)
Public fieldedgesByTypeCounts
The number of edges for each edge type indexed by the type ID.
(Inherited from LGSPGraph.)
Public fieldedgesByTypeHeads
An array containing one head of a doubly-linked ring-list for each edge type indexed by the type ID.
(Inherited from LGSPGraph.)
Public fieldflagsPerThreadPerElement
a list which stores for each parallel matcher thread, per graph element the flags with the matching state each flag encodes a bounded amount of the is-matched-bits for the lowest isomorphy spaces, the flag is a reduced version of the flags bitvector available in each graph element in case of single threaded matching (the unique id of the graph elements is used as index into the flags array)
(Inherited from LGSPGraph.)
Public fieldgraphMatchingLock (Inherited from LGSPGraph.)
Public fieldinIsoSpaceMatchedElements
a list with the isomorphy spaces, each contains in a dictionary the elements matched locally used in case the is-matched-bits in the graph elements are not sufficient (during non-parallel matching)
(Inherited from LGSPGraph.)
Public fieldinIsoSpaceMatchedElementsGlobal
a list with the isomorphy spaces, each contains in a dictionary the elements matched globally used in case the is-matched-bits in the graph elements are not sufficient (during non-parallel matching)
(Inherited from LGSPGraph.)
Public fieldmatchingState
Normally null, contains some data which allows for efficient graph comparison, in case this is a constant graph which was used for isomorphy checking
(Inherited from LGSPGraph.)
Protected fieldmodel (Inherited from LGSPGraph.)
Public fieldnameOfSingleElementAdded (Inherited from LGSPGraph.)
Public fieldnodesByTypeCounts
The number of nodes for each node type indexed by the type ID.
(Inherited from LGSPGraph.)
Public fieldnodesByTypeHeads
An array containing one head of a doubly-linked ring-list for each node type indexed by the type ID.
(Inherited from LGSPGraph.)
Public fieldperThreadInIsoSpaceMatchedElements
a list which stores for each matcher thread the isomorphy spaces, each contains in a dictionary the elements matched locally used in case the is-matched-bits in the per-thread flags array are not sufficient, employed during parallelized matching the outermost list is read concurrently, so its dimension/content must be fixed before matching begins
(Inherited from LGSPGraph.)
Public fieldperThreadInIsoSpaceMatchedElementsGlobal
a list which stores for each matcher thread the isomorphy spaces, each contains in a dictionary the elements matched globally used in case the is-matched-bits in the per-thread flags array are not sufficient, employed during parallelized matching the outermost list is read concurrently, so its dimension/content must be fixed before matching begins
(Inherited from LGSPGraph.)
Public fieldstatistics
Stores the statistics about the last analyze pass of the graph
(Inherited from LGSPGraph.)
Top
See Also