Class IntegerTriplesArcLabelledImmutableGraph
- java.lang.Object
-
- it.unimi.dsi.big.webgraph.ImmutableGraph
-
- it.unimi.dsi.big.webgraph.labelling.ArcLabelledImmutableGraph
-
- it.unimi.dsi.big.webgraph.labelling.ArcLabelledImmutableSequentialGraph
-
- it.unimi.dsi.big.webgraph.examples.IntegerTriplesArcLabelledImmutableGraph
-
- All Implemented Interfaces:
it.unimi.dsi.lang.FlyweightPrototype<ImmutableGraph>
public class IntegerTriplesArcLabelledImmutableGraph extends ArcLabelledImmutableSequentialGraph
A class exposing a list of triples as anArcLabelledImmutableGraph
. The triples are interpreted as labelled arcs: the first element is the source, the second element is the target, and the third element must be a nonnegative integer that will be saved using aGammaCodedIntLabel
.This class is mainly a useful example of how to expose of your data via an
ArcLabelledImmutableGraph
, and it is also used to build test cases, but it is not efficient or particularly refined.A main method reads from standard input a list of TAB-separated triples and writes the corresponding graph using
BVGraph
andBitStreamArcLabelledImmutableGraph
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class it.unimi.dsi.big.webgraph.ImmutableGraph
ImmutableGraph.LoadMethod
-
-
Field Summary
-
Fields inherited from class it.unimi.dsi.big.webgraph.labelling.ArcLabelledImmutableGraph
UNDERLYINGGRAPH_PROPERTY_KEY, UNDERLYINGGRAPH_SUFFIX
-
Fields inherited from class it.unimi.dsi.big.webgraph.ImmutableGraph
GRAPHCLASS_PROPERTY_KEY, NUMBER_OF_THREADS_PROPERTY, PROPERTIES_EXTENSION
-
-
Constructor Summary
Constructors Constructor Description IntegerTriplesArcLabelledImmutableGraph(int[][] triple)
Creates a new arc-labelled immutable graph using a specified list of triples.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
main(java.lang.String[] arg)
ArcLabelledNodeIterator
nodeIterator()
Returns a node iterator for scanning the graph sequentially, starting from the first node.ArcLabelledNodeIterator
nodeIterator(long from)
Throws anUnsupportedOperationException
.long
numNodes()
Returns the number of nodes of this graph.Label
prototype()
Returns a prototype of the labels used by this graph.-
Methods inherited from class it.unimi.dsi.big.webgraph.labelling.ArcLabelledImmutableSequentialGraph
copy, labelBigArray, outdegree, randomAccess, successorBigArray, successors
-
Methods inherited from class it.unimi.dsi.big.webgraph.labelling.ArcLabelledImmutableGraph
equals, load, load, loadOffline, loadOffline, loadOnce, loadSequential, loadSequential, toString
-
Methods inherited from class it.unimi.dsi.big.webgraph.ImmutableGraph
basename, hasCopiableIterators, hashCode, intNumNodes, load, loadMapped, loadMapped, numArcs, outdegrees, splitNodeIterators, store, store, wrap, wrap
-
-
-
-
Constructor Detail
-
IntegerTriplesArcLabelledImmutableGraph
public IntegerTriplesArcLabelledImmutableGraph(int[][] triple)
Creates a new arc-labelled immutable graph using a specified list of triples.Note that it is impossible to specify isolated nodes with indices larger than the largest node with positive indegree or outdegree, as the number of nodes is computed by maximising over all indices in
triple
.- Parameters:
triple
- a list of triples specifying labelled arcs (see the class documentation); order is not relevant, but multiple arcs are not allowed.
-
-
Method Detail
-
prototype
public Label prototype()
Description copied from class:ArcLabelledImmutableGraph
Returns a prototype of the labels used by this graph. The prototype can be used to produce new copies, but must not be modified by the caller.- Specified by:
prototype
in classArcLabelledImmutableGraph
- Returns:
- a prototype for the labels of this graph.
-
numNodes
public long numNodes()
Description copied from class:ImmutableGraph
Returns the number of nodes of this graph.Albeit this method is not optional, it is allowed that this method throws an
UnsupportedOperationException
if this graph has never been entirely traversed using anode iterator
. This apparently bizarre behaviour is necessary to support implementations asArcListASCIIGraph
, which do not know the actual number of nodes until a traversal has been completed.- Specified by:
numNodes
in classImmutableGraph
- Returns:
- the number of nodes.
-
nodeIterator
public ArcLabelledNodeIterator nodeIterator(long from)
Description copied from class:ArcLabelledImmutableSequentialGraph
Throws anUnsupportedOperationException
.- Overrides:
nodeIterator
in classArcLabelledImmutableSequentialGraph
- Parameters:
from
- the node from which the iterator will iterate.- Returns:
- an
ArcLabelledNodeIterator
for accessing nodes, successors and their labels sequentially. - See Also:
ImmutableGraph.nodeIterator()
-
nodeIterator
public ArcLabelledNodeIterator nodeIterator()
Description copied from class:ImmutableGraph
Returns a node iterator for scanning the graph sequentially, starting from the first node.- Overrides:
nodeIterator
in classArcLabelledImmutableGraph
- Returns:
- a
NodeIterator
for accessing nodes and successors sequentially.
-
main
public static void main(java.lang.String[] arg) throws com.martiansoftware.jsap.JSAPException, java.io.IOException
- Throws:
com.martiansoftware.jsap.JSAPException
java.io.IOException
-
-