Package it.unimi.dsi.webgraph.jung
Class JungAdapter
java.lang.Object
it.unimi.dsi.webgraph.jung.JungAdapter
- All Implemented Interfaces:
edu.uci.ics.jung.graph.DirectedGraph<java.lang.Integer,java.lang.Long>
,edu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
,edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
public class JungAdapter
extends java.lang.Object
implements edu.uci.ics.jung.graph.DirectedGraph<java.lang.Integer,java.lang.Long>
An adapter exposing an
ImmutableGraph
as a Jung
DirectedGraph
.
Using this adapter it is easy to apply Jung's analysis and visualisation code to immutable graphs.
Edges are just Long
s, and their values are the index of the source node, shifted to the left by
32 bits, OR'd with the index of the target node.
The main method of this class provides a simple way to translate any immutable graph in Pajek format.
-
Constructor Summary
Constructors Constructor Description JungAdapter(ImmutableGraph graph, ImmutableGraph transpose)
Creates a Jung adapter. -
Method Summary
Modifier and Type Method Description boolean
addEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2)
boolean
addEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2, edu.uci.ics.jung.graph.util.EdgeType arg3)
boolean
addEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y)
boolean
addEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y, edu.uci.ics.jung.graph.util.EdgeType arg2)
boolean
addVertex(java.lang.Integer x)
boolean
containsEdge(java.lang.Long e)
boolean
containsVertex(java.lang.Integer x)
int
degree(java.lang.Integer x)
java.lang.Long
findEdge(java.lang.Integer x, java.lang.Integer y)
java.util.Collection<java.lang.Long>
findEdgeSet(java.lang.Integer x, java.lang.Integer y)
edu.uci.ics.jung.graph.util.EdgeType
getDefaultEdgeType()
java.lang.Integer
getDest(java.lang.Long e)
int
getEdgeCount()
int
getEdgeCount(edu.uci.ics.jung.graph.util.EdgeType x)
java.util.Collection<java.lang.Long>
getEdges()
java.util.Collection<java.lang.Long>
getEdges(edu.uci.ics.jung.graph.util.EdgeType x)
edu.uci.ics.jung.graph.util.EdgeType
getEdgeType(java.lang.Long e)
edu.uci.ics.jung.graph.util.Pair<java.lang.Integer>
getEndpoints(java.lang.Long e)
int
getIncidentCount(java.lang.Long e)
java.util.Collection<java.lang.Long>
getIncidentEdges(java.lang.Integer x)
java.util.Collection<java.lang.Integer>
getIncidentVertices(java.lang.Long e)
java.util.Collection<java.lang.Long>
getInEdges(java.lang.Integer x)
int
getNeighborCount(java.lang.Integer x)
java.util.Collection<java.lang.Integer>
getNeighbors(java.lang.Integer x)
java.lang.Integer
getOpposite(java.lang.Integer v, java.lang.Long e)
java.util.Collection<java.lang.Long>
getOutEdges(java.lang.Integer x)
int
getPredecessorCount(java.lang.Integer x)
java.util.Collection<java.lang.Integer>
getPredecessors(java.lang.Integer x)
java.lang.Integer
getSource(java.lang.Long e)
int
getSuccessorCount(java.lang.Integer x)
java.util.Collection<java.lang.Integer>
getSuccessors(java.lang.Integer x)
int
getVertexCount()
java.util.Collection<java.lang.Integer>
getVertices()
int
inDegree(java.lang.Integer x)
boolean
isArc(int x, int y)
boolean
isDest(java.lang.Integer v, java.lang.Long e)
boolean
isIncident(java.lang.Integer x, java.lang.Long e)
boolean
isNeighbor(java.lang.Integer x, java.lang.Integer y)
boolean
isPredecessor(java.lang.Integer x, java.lang.Integer y)
boolean
isSource(java.lang.Integer v, java.lang.Long e)
boolean
isSuccessor(java.lang.Integer x, java.lang.Integer y)
static void
main(java.lang.String[] arg)
int
outDegree(java.lang.Integer x)
boolean
removeEdge(java.lang.Long e)
boolean
removeVertex(java.lang.Integer x)
-
Constructor Details
-
JungAdapter
Creates a Jung adapter.- Parameters:
graph
- a graph.transpose
- its transpose (look atTransform.transpose(ImmutableGraph)
andTransform.transposeOffline(ImmutableGraph, int, java.io.File)
for ways to generate the transpose of a graph).- Throws:
java.lang.IllegalArgumentException
- ifgraph
has more thanInteger.MAX_VALUE
arcs (asgetEdgeCount()
returns an integer).
-
-
Method Details
-
getSource
public java.lang.Integer getSource(java.lang.Long e)- Specified by:
getSource
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getSource
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getDest
public java.lang.Integer getDest(java.lang.Long e)- Specified by:
getDest
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getDest
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEndpoints
public edu.uci.ics.jung.graph.util.Pair<java.lang.Integer> getEndpoints(java.lang.Long e)- Specified by:
getEndpoints
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
getInEdges
public java.util.Collection<java.lang.Long> getInEdges(java.lang.Integer x)- Specified by:
getInEdges
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getInEdges
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getOpposite
public java.lang.Integer getOpposite(java.lang.Integer v, java.lang.Long e)- Specified by:
getOpposite
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
getOutEdges
public java.util.Collection<java.lang.Long> getOutEdges(java.lang.Integer x)- Specified by:
getOutEdges
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getOutEdges
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getPredecessorCount
public int getPredecessorCount(java.lang.Integer x)- Specified by:
getPredecessorCount
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
getPredecessors
public java.util.Collection<java.lang.Integer> getPredecessors(java.lang.Integer x)- Specified by:
getPredecessors
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getPredecessors
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getSuccessorCount
public int getSuccessorCount(java.lang.Integer x)- Specified by:
getSuccessorCount
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
getSuccessors
public java.util.Collection<java.lang.Integer> getSuccessors(java.lang.Integer x)- Specified by:
getSuccessors
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
getSuccessors
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
inDegree
public int inDegree(java.lang.Integer x)- Specified by:
inDegree
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
inDegree
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
isDest
public boolean isDest(java.lang.Integer v, java.lang.Long e)- Specified by:
isDest
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
isArc
public boolean isArc(int x, int y) -
isPredecessor
public boolean isPredecessor(java.lang.Integer x, java.lang.Integer y)- Specified by:
isPredecessor
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
isSource
public boolean isSource(java.lang.Integer v, java.lang.Long e)- Specified by:
isSource
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
isSuccessor
public boolean isSuccessor(java.lang.Integer x, java.lang.Integer y)- Specified by:
isSuccessor
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
outDegree
public int outDegree(java.lang.Integer x)- Specified by:
outDegree
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Specified by:
outDegree
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
containsEdge
public boolean containsEdge(java.lang.Long e)- Specified by:
containsEdge
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
containsVertex
public boolean containsVertex(java.lang.Integer x)- Specified by:
containsVertex
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
degree
public int degree(java.lang.Integer x)- Specified by:
degree
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
findEdge
public java.lang.Long findEdge(java.lang.Integer x, java.lang.Integer y)- Specified by:
findEdge
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
findEdgeSet
public java.util.Collection<java.lang.Long> findEdgeSet(java.lang.Integer x, java.lang.Integer y)- Specified by:
findEdgeSet
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getDefaultEdgeType
public edu.uci.ics.jung.graph.util.EdgeType getDefaultEdgeType()- Specified by:
getDefaultEdgeType
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdgeCount
public int getEdgeCount()- Specified by:
getEdgeCount
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdgeCount
public int getEdgeCount(edu.uci.ics.jung.graph.util.EdgeType x)- Specified by:
getEdgeCount
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdgeType
public edu.uci.ics.jung.graph.util.EdgeType getEdgeType(java.lang.Long e)- Specified by:
getEdgeType
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdges
public java.util.Collection<java.lang.Long> getEdges()- Specified by:
getEdges
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdges
public java.util.Collection<java.lang.Long> getEdges(edu.uci.ics.jung.graph.util.EdgeType x)- Specified by:
getEdges
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getIncidentCount
public int getIncidentCount(java.lang.Long e)- Specified by:
getIncidentCount
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getIncidentEdges
public java.util.Collection<java.lang.Long> getIncidentEdges(java.lang.Integer x)- Specified by:
getIncidentEdges
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getIncidentVertices
public java.util.Collection<java.lang.Integer> getIncidentVertices(java.lang.Long e)- Specified by:
getIncidentVertices
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getNeighborCount
public int getNeighborCount(java.lang.Integer x)- Specified by:
getNeighborCount
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getNeighbors
public java.util.Collection<java.lang.Integer> getNeighbors(java.lang.Integer x)- Specified by:
getNeighbors
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getVertexCount
public int getVertexCount()- Specified by:
getVertexCount
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getVertices
public java.util.Collection<java.lang.Integer> getVertices()- Specified by:
getVertices
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
isIncident
public boolean isIncident(java.lang.Integer x, java.lang.Long e)- Specified by:
isIncident
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
isNeighbor
public boolean isNeighbor(java.lang.Integer x, java.lang.Integer y)- Specified by:
isNeighbor
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
removeEdge
public boolean removeEdge(java.lang.Long e)- Specified by:
removeEdge
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
removeVertex
public boolean removeVertex(java.lang.Integer x)- Specified by:
removeVertex
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
addEdge
public boolean addEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2)- Specified by:
addEdge
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
addEdge
public boolean addEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2, edu.uci.ics.jung.graph.util.EdgeType arg3)- Specified by:
addEdge
in interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
addEdge
public boolean addEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y)- Specified by:
addEdge
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
addEdge
public boolean addEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y, edu.uci.ics.jung.graph.util.EdgeType arg2)- Specified by:
addEdge
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
addVertex
public boolean addVertex(java.lang.Integer x)- Specified by:
addVertex
in interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
- Throws:
java.lang.UnsupportedOperationException
-
main
- Throws:
java.io.IOException
JSAPException
-