Click or drag to resize

IGraphModel Interface

A model of a GrGen graph.

Namespace:  de.unika.ipd.grGen.libGr
Assembly:  libGr (in libGr.dll) Version: GrGen.NET 6.7
Syntax
C#
public interface IGraphModel

The IGraphModel type exposes the following members.

Properties
  NameDescription
Public propertyAreFunctionsParallelized
If true, function methods (and functions from the actions based on this model) are also available in a parallelized version, and external functions and function methods of external classes are expected to be also available in a parallelized version (and graph element uniqueness is ensured).
Public propertyBranchingFactorForEqualsAny
Tells about the number of threads to use for the equalsAny, equalsAnyStructurally, getEquivalent, and getEquivalentStructurally functions The normal non-parallel isomorphy comparison functions are used if this value is below 2
Public propertyEdgeModel
The model of the edges (edge classes).
Public propertyEnumAttributeTypes
Enumerates all enum attribute types declared for this model.
Public propertyExternalObjectTypes
The external object types known to this model, it contains always and at least the object type, the bottom type of the external attribute types hierarchy.
Public propertyGraphElementsAreAccessibleByUniqueId
If true you may query the graph with GetGraphElement for a graph element of a given unique id
Public propertyGraphElementUniquenessIsEnsured
If true you may query the graph elements with GetUniqueId for their unique id
Public propertyIndexDescriptions
Enumerates the descriptions of all attribute and incidence count indices declared in this model.
Public propertyIsEqualClassDefined
Tells whether AttributeTypeObjectCopierComparer.IsEqual functions are available, for object and external types.
Public propertyIsLowerClassDefined
Tells whether AttributeTypeObjectCopierComparer.IsLower functions are available, for object and external types.
Public propertyMD5Hash
An MD5 hash sum of the model.
Public propertyModelName
The name of this model.
Public propertyNodeModel
The model of the nodes (node classes).
Public propertyObjectModel
The model of the objects (internal classes).
Public propertyPackages
Enumerates all packages declared in this model.
Public propertyThreadPoolSizeForSequencesParallelExecution
Tells about the number of threads to use when executing the parallel construct from the sequences.
Public propertyTransientObjectModel
The model of the objects (internal transient classes).
Public propertyValidateInfo
Enumerates all ValidateInfo objects describing constraints on the graph structure.
Top
Methods
  NameDescription
Public methodArrayGroupBy
Groups the array alongside the values in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayIndexOfBy(IList, String, Object)
Searches the array for the given value in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayIndexOfBy(IList, String, Object, Int32)
Searches the array for the given value in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayIndexOfOrderedBy
Searches the array for the given value in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object. The array must be ordered alongside the member.
Public methodArrayKeepOneForEach
Keeps the array members with distinct values in the given member / removes duplicates. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayLastIndexOfBy(IList, String, Object)
Searches the array for the given value in the given member from back to front. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayLastIndexOfBy(IList, String, Object, Int32)
Searches the array for the given value in the given member from back to front. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayOrderAscendingBy
Orders the array ascendingly alongside the values in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodArrayOrderDescendingBy
Orders the array descendingly alongside the values in the given member. The array must be of node or edge type, i.e. of a graph element type of this model object.
Public methodAsGraph
Called during debugging on user request, the implementation must return a named graph representation for the attribute. For attribute type object or a user defined type, which is treated as object. The attribute type may be null. The return graph must be of the same model as the graph handed in. The named graph is meant for display in the debugger, to visualize the internal structure of some attribute type. This way you can graphically inspect your own data types which are opaque to GrGen with its debugger.
Public methodCreateIndexSet
Called by the graph (generic implementation) to create its index set (generated code). Always called by an empty graph just constructed, the index set is then directly bound to the graph.
Public methodCreateUniquenessHandler
Called by the graph (generic implementation) to create its uniqueness handler (generated code). Always called by an empty graph just constructed, the uniqueness handler is then directly bound to the graph.
Public methodEmit
Called during debugging or emit writing, the implementation must return a string representation for the attribute. For attribute type object or a user defined type, which is treated as object. The attribute type may be null. The string is meant for consumption by humans, it does not need to be parseable.
Public methodExternal
Called when the grs importer or the shell hits a line starting with "external". The content of that line is handed in. This is typically used while replaying changes containing a method call of an external type -- after such a line was recorded, by the method called, by writing to the recorder. This is meant to replay fine-grain changes of graph attributes of external type, in contrast to full assignments handled by Parse and Serialize.
Public methodFailAssertion
Debugging helper. Fails in a debug build with an assertion.
Public methodFillIndexSetAsClone
Called on an index set that was created and bound, when the graph was copy constructed from an original graph, to fill in the already available cloned content from the original graph.
Public methodIsEqual
Calls the AttributeTypeObjectCopierComparer.IsEqual function for object type arguments, when an attribute of object or external type is compared for structural equality in the interpreted sequences; you may dispatch from there to the type exact comparisons, which are called directly from the compiled sequences.
Public methodIsLower
Calls the AttributeTypeObjectCopierComparer.IsLower function for object type arguments, when an attribute of object or external type is compared for ordering in the interpreted sequences; you may dispatch from there to the type exact comparisons, which are called directly from the compiled sequences.
Public methodParse
Called during .grs import, at exactly the position in the text reader where the attribute begins. For attribute type object or a user defined type, which is treated as object. The implementation must parse from there on the attribute type requested. It must not parse beyond the serialized representation of the attribute, i.e. Peek() must return the first character not belonging to the attribute type any more. Returns the parsed object.
Public methodSerialize
Called during .grs export, the implementation must return a string representation for the attribute. For attribute type object or a user defined type, which is treated as object. The serialized string must be parseable by Parse.
Top
See Also