IGraph Interface 
Namespace: VelocityGraph.Frontenac.Blueprints
The IGraph type exposes the following members.
Name  Description  

Features 
Get the particular features of the graph implementation.
Not all graph implementations are identical nor perfectly implement the Blueprints API.
The Features object returned contains metadata about numerous potential divergences between implementations.

Name  Description  

AddEdge 
Add an edge to the graph. The added edges requires a recommended identifier, a tail vertex, an head vertex, and a label.
Like adding a vertex, the provided object identifier may be ignored by the implementation.
 
AddVertex 
Create a new vertex, add it to the graph, and return the newly created vertex.
The provided object identifier is a recommendation for the identifier to use.
It is not required that the implementation use this identifier.
 
GetEdge 
Return the edge referenced by the provided object identifier.
If no edge is referenced by that identifier, then return null.
 
GetEdges 
Return an iterable to all the edges in the graph.
If this is not possible for the implementation, then an NotSupportedException can be thrown.
 
GetEdges(String, Object) 
Return an iterable to all the edges in the graph that have a particular key/value property.
If this is not possible for the implementation, then an NotSupportedException can be thrown.
The graph implementation should use indexing structures to make this efficient else a full edgefilter scan is required.
 
GetVertex 
Return the vertex referenced by the provided object identifier.
If no vertex is referenced by that identifier, then return null.
 
GetVertices 
Return an iterable to all the vertices in the graph.
If this is not possible for the implementation, then an NotSupportedException can be thrown.
 
GetVertices(String, Object) 
Return an iterable to all the vertices in the graph that have a particular key/value property.
If this is not possible for the implementation, then a NotSupportedException can be thrown.
The graph implementation should use indexing structures to make this efficient else a full vertexfilter scan is required.
 
Query 
Generate a query object that can be used to fine tune which edges/vertices are retrieved from the graph.
 
RemoveEdge 
Remove the provided edge from the graph.
 
RemoveVertex 
Remove the provided vertex from the graph.
Upon removing the vertex, all the edges by which the vertex is connected must be removed as well.
 
Shutdown 
Name  Description  

AddEdge 
Add an edge to the graph with specified id and provided properties.
(Defined by GraphHelpers.)  
AddVertex 
Add a vertex to the graph with specified id and provided properties.
(Defined by GraphHelpers.)  
CopyGraph 
Copy the vertex/edges of one graph over to another graph.
The id of the elements in the from graph are attempted to be used in the to graph.
This method only works for graphs where the user can control the element ids.
(Defined by GraphHelpers.)  
CreateTinkerGraph  (Defined by GraphHelpers.)  
GraphString  (Defined by StringFactory.)  
LoadGml  (Defined by GraphHelpers.)  
LoadGraphml  (Defined by GraphHelpers.)  
LoadGraphson  (Defined by GraphHelpers.)  
ReIndexElementsT 
For those graphs that do no support automatic reindexing of elements when a key is provided for indexing, this method can be used to simulate that behavior.
The elements in the graph are iterated and their properties (for the provided keys) are removed and then added.
Be sure that the key indices have been created prior to calling this method so that they can pick up the property mutations calls.
Finally, if the graph is a TransactionalGraph, then a 1000 mutation buffer is used for each commit.
(Defined by KeyIndexableGraphHelpers.)  
SaveDotNet  (Defined by GraphHelpers.)  
SaveGml  (Defined by GraphHelpers.)  
SaveGraphml  (Defined by GraphHelpers.)  
SaveGraphson  (Defined by GraphHelpers.) 