Class ArcRelabelledImmutableGraph
- All Implemented Interfaces:
FlyweightPrototype<ImmutableGraph>
public class ArcRelabelledImmutableGraph extends ArcLabelledImmutableGraph
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
ArcRelabelledImmutableGraph.LabelConversionStrategy
A way to convert a label into another label.Nested classes/interfaces inherited from class it.unimi.dsi.webgraph.ImmutableGraph
ImmutableGraph.LoadMethod
-
Field Summary
Fields Modifier and Type Field Description static ArcRelabelledImmutableGraph.LabelConversionStrategy
INT_LABEL_CONVERSION_STRATEGY
A conversion strategy that converts between any two classes extendingAbstractIntLabel
.Fields inherited from class it.unimi.dsi.webgraph.labelling.ArcLabelledImmutableGraph
UNDERLYINGGRAPH_PROPERTY_KEY, UNDERLYINGGRAPH_SUFFIX
Fields inherited from class it.unimi.dsi.webgraph.ImmutableGraph
GRAPHCLASS_PROPERTY_KEY, NUMBER_OF_THREADS_PROPERTY, PROPERTIES_EXTENSION
-
Constructor Summary
Constructors Constructor Description ArcRelabelledImmutableGraph(ArcLabelledImmutableGraph wrappedGraph, Label newLabelPrototype, ArcRelabelledImmutableGraph.LabelConversionStrategy conversionStrategy)
Creates a relabelled graph with given label prototype. -
Method Summary
Modifier and Type Method Description ArcRelabelledImmutableGraph
copy()
Returns a flyweight copy of this immutable graph.boolean
hasCopiableIterators()
Whether the node iterators returned by this graph supportNodeIterator.copy(int)
.static void
main(java.lang.String[] arg)
ArcLabelledNodeIterator
nodeIterator(int from)
Returns a node iterator for scanning the graph sequentially, starting from the given node.int
numNodes()
Returns the number of nodes of this graph.int
outdegree(int x)
Returns the outdegree of a node.Label
prototype()
Returns a prototype of the labels used by this graph.boolean
randomAccess()
Checks whether this graph provides random access to successor lists.ArcLabelledNodeIterator.LabelledArcIterator
successors(int x)
Returns a lazy iterator over the successors of a given node.Methods inherited from class it.unimi.dsi.webgraph.labelling.ArcLabelledImmutableGraph
equals, labelArray, load, load, loadOffline, loadOffline, loadOnce, loadSequential, loadSequential, nodeIterator, toString
Methods inherited from class it.unimi.dsi.webgraph.ImmutableGraph
basename, hashCode, load, loadMapped, loadMapped, numArcs, outdegrees, splitNodeIterators, store, store, successorArray
-
Field Details
-
INT_LABEL_CONVERSION_STRATEGY
public static final ArcRelabelledImmutableGraph.LabelConversionStrategy INT_LABEL_CONVERSION_STRATEGYA conversion strategy that converts between any two classes extendingAbstractIntLabel
.
-
-
Constructor Details
-
ArcRelabelledImmutableGraph
public ArcRelabelledImmutableGraph(ArcLabelledImmutableGraph wrappedGraph, Label newLabelPrototype, ArcRelabelledImmutableGraph.LabelConversionStrategy conversionStrategy)Creates a relabelled graph with given label prototype.- Parameters:
wrappedGraph
- the graph we are going to relabel.newLabelPrototype
- the prototype for the new type of labels.conversionStrategy
- the strategy to convert the labels of the wrapped graph into the new labels.
-
-
Method Details
-
copy
Description copied from class:ImmutableGraph
Returns a flyweight copy of this immutable graph.- Specified by:
copy
in interfaceFlyweightPrototype<ImmutableGraph>
- Specified by:
copy
in classArcLabelledImmutableGraph
- Returns:
- a flyweight copy of this immutable graph.
- See Also:
FlyweightPrototype
-
nodeIterator
Description copied from class:ArcLabelledImmutableGraph
Returns a node iterator for scanning the graph sequentially, starting from the given node.This implementation strengthens that provided in
ImmutableGraph
, but calls the labelled random-access methodArcLabelledImmutableGraph.successors(int)
.- Overrides:
nodeIterator
in classArcLabelledImmutableGraph
- 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()
-
successors
Description copied from class:ImmutableGraph
Returns a lazy iterator over the successors of a given node. The iteration terminates when -1 is returned.This implementation just wraps the array returned by
ImmutableGraph.successorArray(int)
. Subclasses are encouraged to override this implementation.The semantics of this method has been significantly modified in WebGraph 2.0 to take advantage of the new, faster lazy architecture.
- Specified by:
successors
in classArcLabelledImmutableGraph
- Parameters:
x
- a node.- Returns:
- a lazy iterator over the successors of the node.
-
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 int 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.
-
randomAccess
public boolean randomAccess()Description copied from class:ImmutableGraph
Checks whether this graph provides random access to successor lists.- Specified by:
randomAccess
in classImmutableGraph
- Returns:
- true if this graph provides random access to successor lists.
-
hasCopiableIterators
public boolean hasCopiableIterators()Description copied from class:ImmutableGraph
Whether the node iterators returned by this graph supportNodeIterator.copy(int)
.This implementation just returns
ImmutableGraph.randomAccess()
.- Overrides:
hasCopiableIterators
in classImmutableGraph
- Returns:
- true if this graph provides copiable iterators.
-
outdegree
public int outdegree(int x)Description copied from class:ImmutableGraph
Returns the outdegree of a node.- Specified by:
outdegree
in classImmutableGraph
- Parameters:
x
- a node.- Returns:
- the outdegree of the given node.
-
main
public static void main(java.lang.String[] arg) throws JSAPException, java.io.IOException, java.lang.IllegalArgumentException, java.lang.SecurityException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, java.lang.NoSuchMethodException, java.lang.ClassNotFoundException, java.lang.InstantiationException- Throws:
JSAPException
java.io.IOException
java.lang.IllegalArgumentException
java.lang.SecurityException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException
java.lang.ClassNotFoundException
java.lang.InstantiationException
-