IGraphModel Interface |
Namespace: de.unika.ipd.grGen.libGr
public interface IGraphModel
The IGraphModel type exposes the following members.
Name | Description | |
---|---|---|
AreFunctionsParallelized |
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).
| |
BranchingFactorForEqualsAny |
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
| |
EdgeModel |
The model of the edges (edge classes).
| |
EnumAttributeTypes |
Enumerates all enum attribute types declared for this model.
| |
ExternalObjectTypes |
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.
| |
GraphElementsAreAccessibleByUniqueId |
If true you may query the graph with GetGraphElement for a graph element of a given unique id
| |
GraphElementUniquenessIsEnsured |
If true you may query the graph elements with GetUniqueId for their unique id
| |
IndexDescriptions |
Enumerates the descriptions of all attribute and incidence count indices declared in this model.
| |
IsEqualClassDefined |
Tells whether AttributeTypeObjectCopierComparer.IsEqual functions are available,
for object and external types.
| |
IsLowerClassDefined |
Tells whether AttributeTypeObjectCopierComparer.IsLower functions are available,
for object and external types.
| |
MD5Hash |
An MD5 hash sum of the model.
| |
ModelName |
The name of this model.
| |
NodeModel |
The model of the nodes (node classes).
| |
ObjectModel |
The model of the objects (internal classes).
| |
Packages |
Enumerates all packages declared in this model.
| |
ThreadPoolSizeForSequencesParallelExecution |
Tells about the number of threads to use when executing the parallel construct from the sequences.
| |
TransientObjectModel |
The model of the objects (internal transient classes).
| |
ValidateInfo |
Enumerates all ValidateInfo objects describing constraints on the graph structure.
|
Name | Description | |
---|---|---|
ArrayGroupBy |
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.
| |
ArrayIndexOfBy(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.
| |
ArrayIndexOfBy(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.
| |
ArrayIndexOfOrderedBy |
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.
| |
ArrayKeepOneForEach |
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.
| |
ArrayLastIndexOfBy(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.
| |
ArrayLastIndexOfBy(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.
| |
ArrayOrderAscendingBy |
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.
| |
ArrayOrderDescendingBy |
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.
| |
AsGraph |
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.
| |
CreateIndexSet |
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.
| |
CreateUniquenessHandler |
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.
| |
Emit |
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.
| |
External |
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.
| |
FailAssertion |
Debugging helper. Fails in a debug build with an assertion.
| |
FillIndexSetAsClone |
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.
| |
IsEqual |
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.
| |
IsLower |
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.
| |
Parse |
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.
| |
Serialize |
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.
|