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.1
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(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 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

true if that is isomorph (regarding structure) to this, false otherwise
(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(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 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 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