Salt
3.3.6-SNAPSHOT
A powerful, tagset-independent and theory-neutral meta model and API for storing, manipulating, and representing nearly all types of linguistic data .
|
Inherits org.corpus_tools.salt.graph.impl.IdentifiableElementImpl, and org.corpus_tools.salt.graph.Graph< N extends Node, R extends Relation< N, N, L extends Layer< N, R >.
Inherited by org.corpus_tools.salt.core.impl.SGraphImpl, and org.corpus_tools.salt.extensions.notification.graph.impl.GraphNotifierImpl< N extends Node, R extends Relation< N, N, L extends Layer< N, R >.
Classes | |
enum | UPDATE_TYPE |
Public Member Functions | |||||
GraphImpl (Graph< N, R, L > delegate) | |||||
Initializes an object of type Graph. More... | |||||
IndexMgr | getIndexMgr () | ||||
Returns the index manager. More... | |||||
GraphImpl (int expectedNodes, int expectedRelations) | |||||
Instantiates a new graph object and sets the initial capacity for all indexes to the passed ones. More... | |||||
List< N > | getNodes () | ||||
{ Graph::getNodes()} | |||||
N | getNode (String nodeId) | ||||
{ Graph::getNode(String)} | |||||
void | addNode (N node) | ||||
{ Graph::addNode(Node)} | |||||
void | removeNode (N node) | ||||
{ Graph::removeNode(Node)} | |||||
boolean | containsNode (String nodeId) | ||||
{ Graph::containsNode(String)} | |||||
List< R > | getRelations () | ||||
{ Graph::getRelations()} | |||||
R | getRelation (String relationId) | ||||
{ Graph::getRelation(String)} | |||||
List< R > | getRelations (String sourceNodeId, String targetNodeId) | ||||
Returns all relations,which connects the two passed nodes.
| |||||
List< R > | getInRelations (String nodeId) | ||||
Returns all relations, which have the node corresponding to the passed id as their target node.
| |||||
List< R > | getOutRelations (String nodeId) | ||||
Returns all relations, which have the node corresponding to the passed id as their source node.
| |||||
void | addRelation (Relation<?extends N,?extends N > relation) | ||||
{ Graph::addRelation(Relation)} | |||||
void | removeRelation (Relation<?extends N,?extends N > rel) | ||||
Removes the passed relation from this graph.If a relation is removed, it will be deleted from all indexes. If the passed relation is null, nothing is removed.
| |||||
void | removeRelations () | ||||
Removes all relations from this graph and cleans all indexes. | |||||
boolean | containsRelation (String relationId) | ||||
{ Graph::containsRelation(String)} | |||||
Set< L > | getLayers () | ||||
Returns a set of layers contained by this graph.
| |||||
L | getLayer (String layerId) | ||||
Returns a layer corresponding to the passed id, if such a layer is contained in the graph.
| |||||
boolean | containsLayer (String layerId) | ||||
{ Graph::containsLayer(String)} | |||||
void | addLayer (L layer) | ||||
Adds the passed layer to this graph.If layer is null or layer is already contained nothing is inserted. The passed layer and this graph will be double chained, which means the method Layer#getGraph() will return this graph. If the passed layer contains nodes or relations, which are not already contained by the graph, they will be added.
| |||||
void | removeLayer (L layer) | ||||
Removes the passed layer from this graph and cleans all indexes.It also ensures, that the graph is removed from the layer, thus invoking Layer#getGraph() will return null. The double chaining between this graph and the passed layer will be cut off. If the passed layer is null nothing happens.
| |||||
Public Member Functions inherited from org.corpus_tools.salt.graph.impl.IdentifiableElementImpl | |||||
IdentifiableElementImpl (IdentifiableElement delegate) | |||||
Identifier | getIdentifier () | ||||
{ IdentifiableElement::getIdentifier()} | |||||
void | setIdentifier (Identifier identifier) | ||||
{ IdentifiableElement::setIdentifier(Identifier)} | |||||
void | removeLabel (String qName) | ||||
Removes the label having the passed qName.
| |||||
String | getId () | ||||
{ IdentifiableElement::getId()} | |||||
void | setId (String id) | ||||
{ IdentifiableElement::setId(String)} | |||||
String | toString () | ||||
Public Member Functions inherited from org.corpus_tools.salt.graph.impl.LabelableElementImpl | |||||
LabelableElementImpl (LabelableElement delegatee) | |||||
Initializes a new object and sets an internal delegate. More... | |||||
Collection< Label > | getLabels () | ||||
{ LabelableElement::getLabels()} | |||||
Label | getLabel (String qName) | ||||
{ LabelableElement::getLabel(String)} | |||||
Label | getLabel (String namespace, String name) | ||||
{ LabelableElement::getLabel(String, String)} | |||||
Set< Label > | getLabelsByNamespace (String namespace) | ||||
{ LabelableElement::getLabelsByNamespace(String)} | |||||
void | addLabel (Label label) | ||||
Adds the given Label object to the list of labels.
| |||||
void | basicAddLabel (Label label) | ||||
This is an internally used method. More... | |||||
void | removeLabel (String qName) | ||||
{ LabelableElement::removeLabel(String)} | |||||
void | basicRemoveLabel (String qName) | ||||
This is an internally used method. More... | |||||
void | removeLabel (String namespace, String name) | ||||
{ LabelableElement::removeLabel(String, String))} | |||||
void | removeAll () | ||||
{ LabelableElement::removeAll()} | |||||
boolean | containsLabel (String qName) | ||||
{ LabelableElement::containsLabel(String)} | |||||
Integer | sizeLabels () | ||||
{ LabelableElement::sizeLabels()} | |||||
Protected Member Functions | |
Graph< N, R, L > | getDelegate () |
void | init () |
Initializes an object of type GraphImpl. More... | |
void | basicAddNode (N node) |
This is an internally used method. More... | |
void | basicRemoveNode (N node) |
This is an internally used method. More... | |
void | basicAddRelation (Relation<?extends Node,?extends Node > relation) |
This is an internally used method. More... | |
void | update (Object oldValue, Object container, UPDATE_TYPE updateType) throws SaltException |
Updates all graph internal indexes, concerning the kind of the update which has been made. More... | |
void | basicRemoveRelation (Relation<?extends N,?extends N > rel) |
This is an internally used method. More... | |
void | basicAddLayer (L layer) |
This is an internally used method. More... | |
void | basicRemoveLayer (L layer) |
This is an internally used method. More... | |
Protected Member Functions inherited from org.corpus_tools.salt.graph.impl.IdentifiableElementImpl | |
IdentifiableElement | getDelegate () |
Protected Member Functions inherited from org.corpus_tools.salt.graph.impl.LabelableElementImpl | |
LabelableElement | getDelegate () |
Returns the delegate object. More... | |
Protected Attributes | |
IndexMgr | indexMgr = null |
Index manager. | |
int | expectedNodes = 16 |
Number of expected nodes to initialize indexes. | |
int | expectedRelations = 16 |
Number of expected relations to initialize indexes. | |
int | approximatedNodeDegree = expectedRelations / expectedNodes |
Approximated node degree, which is expectedRelations / expectedNodes. | |
Protected Attributes inherited from org.corpus_tools.salt.graph.impl.LabelableElementImpl | |
LabelableElement | delegate = null |
A delegate object of the same type. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from org.corpus_tools.salt.graph.impl.LabelableElementImpl | |
static final int | EXPECTED_NUMBER_OF_LABELS = 5 |
Determines the expected number of labels. More... | |
org.corpus_tools.salt.graph.impl.GraphImpl< N extends Node, R extends Relation< N, N, L extends Layer< N, R >.GraphImpl | ( | int | expectedNodes, |
int | expectedRelations | ||
) |
Instantiates a new graph object and sets the initial capacity for all indexes to the passed ones.
expectedNodes | expected upper bound of nodes in the graph, used for optimization |
expectedRelations | expected upper bound of relations in the graph, used for optimization |
|
protected |
This is an internally used method.
To implement a double chaining of Graph and Node object when an node is inserted into this graph and to avoid an endless invocation the insertion of an relation is split into the two methods addNode(node) and basicAddNode(Node). The invocation of methods is implement as follows:
addLayer(layer) Layer#setGraph(Graph) || \ / || || X || \/ / \ \/ basicAddLayer(Layer) Layer#basicSetGraph(Graph)
That means method addLayer(Layer) calls basicAddLayer(Layer) and Node#basicSetGraph(Graph). And method Layer#setGraph(Graph) calls basicAddLayer(Layer) and Layer#basicSetGraph(Graph).
node | node to be inserted |
|
protected |
This is an internally used method.
To implement a double chaining of Graph and Node object when an node is inserted into this graph and to avoid an endless invocation the insertion of an relation is split into the two methods addNode(node) and basicAddNode(Node). The invocation of methods is implement as follows:
addNode(node) Node#setGraph(Graph) || \ / || || X || \/ / \ \/ basicAddNode(Node) Node#basicSetGraph(Graph)
That means method addNode(Node) calls basicAddNode(Node) and Node#basicSetGraph(Graph). And method Node#setGraph(Graph) calls basicAddNode(Node) and Node#basicSetGraph(Graph).
node | node to be inserted |
|
protected |
This is an internally used method.
To implement a double chaining of Graph and Relation object when an relation is inserted into this graph and to avoid an endless invocation the insertion of an relation is split into the two methods addRelation(Relation) and basicAddRelation(Relation). The invocation of methods is implement as follows:
addRelation(Relation) Relation#setGraph(Graph) || \ / || || X || \/ / \ \/ basicAddRelation(Relation) Relation#basicSetGraph(Graph)
That means method addRelation(Relation) calls basicAddRelation(Relation) and Relation#basicSetGraph(Graph). And method Relation#setGraph(Graph) calls basicAddRelation(Relation) and Relation#basicSetGraph(Graph).
relation | relation to be inserted |
|
protected |
This is an internally used method.
To realize the cut of the double chaining, the removal is split in two methods removeLayer(Layer) and basicRemoveLayer(Layer). which are connected as follows:
removeLayer(layer) Layer#setGraph(null) || \ / || || X || \/ / \ \/ basicRemoveLayer(Layer) Layer#basicSetGraph(null)
node | the node to be removed |
|
protected |
This is an internally used method.
To realize the cut of the double chaining, the removal is split in two methods removeNode(Node) and basicRemoveNode(Node). which are connected as follows:
removeNode(node) Node#setGraph(null) || \ / || || X || \/ / \ \/ basicRemoveNode(Node) Node#basicSetGraph(null)
node | the node to be removed |
|
protected |
This is an internally used method.
To realize the cut of the double chaining, the removal is split in two methods removeRelation(Relation) and basicRemoveRelation(Relation). which are connected as follows:
removeRelation(relation) Relation#setGraph(null) || \ / || || X || \/ / \ \/ basicRemoveRelation(Relation) Relation#basicSetGraph(null)
relation | the relation to be removed |
IndexMgr org.corpus_tools.salt.graph.impl.GraphImpl< N extends Node, R extends Relation< N, N, L extends Layer< N, R >.getIndexMgr | ( | ) |
Returns the index manager.
The index manager is used to register indexes for sets of nodes, relations, layers etc. or single values. The manager contains all indexes used by the Graph class. These indexes are:
Even further indexes can be added to the index manager.
Implements org.corpus_tools.salt.graph.Graph< N extends Node, R extends Relation< N, N, L extends Layer< N, R >.
|
protected |
Initializes an object of type GraphImpl.
|
protected |
Updates all graph internal indexes, concerning the kind of the update which has been made.
If the update could not be performed, false is returned. True otherwise.
oldValue | old value |
container | the object which has been updated |
updateType | type of update to be performed |
SaltException | in case the update could not be performed |