Click or drag to resize

LGSPNode Class

Class implementing nodes in the libGr search plan backend
Inheritance Hierarchy
SystemObject
  de.unika.ipd.grGen.lgspLGSPNode
    de.unika.ipd.grGen.lgspLGSPNodeHead

Namespace: de.unika.ipd.grGen.lgsp
Assembly: lgspBackend (in lgspBackend.dll) Version: GrGen.NET 7.1
Syntax
C#
public abstract class LGSPNode : INode, 
	IGraphElement, IAttributeBearer, ITyped, IDeepEqualityComparer, ICallable

The LGSPNode type exposes the following members.

Constructors
 NameDescription
Protected methodLGSPNode Instantiates an LGSPNode object.
Top
Properties
 NameDescription
Public propertyIncident Returns an IEnumerable<IEdge> over all incident edges
Public propertyIncoming Returns an IEnumerable<IEdge> over all incoming edges
Public propertyItem Indexer that gives access to the attributes of the graph element.
Public propertyOutgoing Returns an IEnumerable<IEdge> over all outgoing edges
Public propertyReplacedByElement The element which replaced this element (Valid is false in this case) or null, if this element has not been replaced or is still a valid member of a graph.
Public propertyReplacedByNode The node which replaced this node (Valid is false in this case) or null, if this node has not been replaced or is still a valid member of a graph.
Public propertyType The NodeType of the node.
Public propertyValid This is true, if this node is a valid graph element, i.e. it is part of a graph.
Top
Methods
 NameDescription
Public methodApplyFunctionMethod Executes the function method given by its name. Throws an exception if the method does not exists or the parameters are of wrong types.
Public methodApplyProcedureMethod Executes the procedure method given by its name. Throws an exception if the method does not exists or the parameters are of wrong types.
Public methodClone Creates a shallow clone of this node. All attributes will be transfered to the new node. The node will not be associated to a graph, yet. So it will not have any incident edges nor any assigned variables.
Public methodCopy Creates a deep copy of this node (i.e. (transient) class objects will be replicated). All attributes will be transfered to the new node. The node will not be associated to a graph, yet. So it will not have any incident edges nor any assigned variables.
Public methodGetAttribute Returns the graph element attribute with the given attribute name. If the graph element type doesn't have an attribute with this name, a NullReferenceException is thrown.
Public methodGetCompatibleIncident Returns an IEnumerable<IEdge> over all incident edges with the same type or a subtype of the given type
Public methodGetCompatibleIncoming Returns an IEnumerable<IEdge> over all incoming edges with the same type or a subtype of the given type
Public methodGetCompatibleOutgoing Returns an IEnumerable<IEdge> over all outgoing edges with the same type or a subtype of the given type
Public methodGetExactIncident Returns an IEnumerable<IEdge> over all incident edges with exactly the given type
Public methodGetExactIncoming Returns an IEnumerable<IEdge> over all incoming edges with exactly the given type
Public methodGetExactOutgoing Returns an IEnumerable<IEdge> over all outgoing edges with exactly the given type
Public methodGetUniqueId Gets the unique id of the node. Only available if unique ids for nodes and edges were declared in the model (or implicitely switched on by parallelization or the declaration of some index).
Public methodInstanceOf Returns true, if the typed object is compatible to the given type.
Public methodIsDeeplyEqual Returns whether this and that are deeply equal, which means the scalar attributes are equal, the container attributes are memberwise deeply equal, and object attributes are deeply equal. (If types are unequal the result is false.) Visited objects are/have to be stored in the visited objects dictionary in order to detect shortcuts and cycles.
Public methodMoveInHeadAfter Moves the head of the incoming list after the given edge. Part of the "list trick".
Public methodMoveOutHeadAfter Moves the head of the outgoing list after the given edge. Part of the "list trick".
Public methodRecycle Recycles this node. This may pool the node or just ignore it.
Public methodResetAllAttributes Resets all graph element attributes to their initial values.
Public methodSetAttribute Sets the graph element attribute with the given attribute name to the given value. If the graph element type doesn't have an attribute with this name, a NullReferenceException is thrown.
Public methodToString Returns the name of the type of this node.
(Overrides ObjectToString)
Top
Fields
 NameDescription
Public fieldlgspFlags contains some booleans coded as bitvector
Public fieldlgspInhead Entry node into the incoming edges list - not of type edge head, real edge or null
Public fieldlgspOuthead Entry node into the outgoing edges list - not of type edge head, real edge or null
Public fieldlgspType The node type of the node.
Public fieldlgspTypeNext Next node in the list containing all the nodes of one type. See comment for lgspTypePrev (this node has been retyped if typeNext is not null but typePrev is null).
Public fieldlgspTypePrev Previous node in the list containing all the nodes of one type. The node is not part of a graph, iff typePrev is null. If typePrev is null and typeNext is not null, this node has been retyped and typeNext points to the new node. These special cases are neccessary to handle the following situations: "delete node + return edge", "hom + delete + return", "hom + retype + return", "hom + retype + delete", "hom + retype + delete + return".
Public fielduniqueId contains a unique id if uniqueness was declared
Top
See Also