it.unimi.dsi.webgraph
Class ImmutableSequentialGraph

java.lang.Object
  extended by it.unimi.dsi.webgraph.ImmutableGraph
      extended by it.unimi.dsi.webgraph.ImmutableSequentialGraph
All Implemented Interfaces:
FlyweightPrototype<ImmutableGraph>
Direct Known Subclasses:
ArcListASCIIGraph, ASCIIGraph, ErdosRenyiGraph, IntegerListImmutableGraph, ScatteredArcsASCIIGraph, Transform.BatchGraph

public abstract class ImmutableSequentialGraph
extends ImmutableGraph

An abstract immutable graph that throws an UnsupportedOperationException on all random-access methods.

The main purpose of this class is to be used as a base for the numerous anonymous classes that do not support random access. Note that we override ImmutableGraph's implementation of nodeIterator(int): here we just call ImmutableGraph.nodeIterator() and skip to the desired node. This makes nodeIterator() and nodeIterator(0) equivalent, which is usually what you want.


Nested Class Summary
 
Nested classes/interfaces inherited from class it.unimi.dsi.webgraph.ImmutableGraph
ImmutableGraph.LoadMethod
 
Field Summary
 
Fields inherited from class it.unimi.dsi.webgraph.ImmutableGraph
GRAPHCLASS_PROPERTY_KEY, PROPERTIES_EXTENSION
 
Constructor Summary
ImmutableSequentialGraph()
           
 
Method Summary
 ImmutableGraph copy()
          Throws an UnsupportedOperationException.
 NodeIterator nodeIterator(int from)
          Returns a node iterator for scanning the graph sequentially, starting from the given node.
 int outdegree(int x)
          Throws an UnsupportedOperationException.
 boolean randomAccess()
          Returns false.
 int[] successorArray(int x)
          Throws an UnsupportedOperationException.
 
Methods inherited from class it.unimi.dsi.webgraph.ImmutableGraph
basename, equals, hashCode, load, load, load, loadMapped, loadMapped, loadOffline, loadOffline, loadOnce, loadSequential, loadSequential, nodeIterator, numArcs, numNodes, outdegrees, store, store, successors, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ImmutableSequentialGraph

public ImmutableSequentialGraph()
Method Detail

successorArray

public int[] successorArray(int x)
Throws an UnsupportedOperationException.

Overrides:
successorArray in class ImmutableGraph
Parameters:
x - a node.
Returns:
an array whose first elements are the successors of the node; the array must not be modified by the caller.

outdegree

public int outdegree(int x)
Throws an UnsupportedOperationException.

Specified by:
outdegree in class ImmutableGraph
Parameters:
x - a node.
Returns:
the outdegree of the given node.

randomAccess

public boolean randomAccess()
Returns false.

Specified by:
randomAccess in class ImmutableGraph
Returns:
false.

nodeIterator

public NodeIterator nodeIterator(int from)
Description copied from class: ImmutableGraph
Returns a node iterator for scanning the graph sequentially, starting from the given node.

This implementation just calls the random-access methods (ImmutableGraph.successors(int) and ImmutableGraph.outdegree(int)). More specific implementations may choose to maintain some extra state to make the enumeration more efficient.

Overrides:
nodeIterator in class ImmutableGraph
Parameters:
from - the node from which the iterator will iterate.
Returns:
a NodeIterator for accessing nodes and successors sequentially.

copy

public ImmutableGraph copy()
Throws an UnsupportedOperationException.

Specified by:
copy in interface FlyweightPrototype<ImmutableGraph>
Specified by:
copy in class ImmutableGraph
Returns:
a flyweight copy of this immutable graph.
See Also:
FlyweightPrototype