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 anImmutableGraphas a JungDirectedGraph.Using this adapter it is easy to apply Jung's analysis and visualisation code to immutable graphs.
Edges are just
Longs, 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2)booleanaddEdge(java.lang.Long e, java.lang.Integer y, java.lang.Integer arg2, edu.uci.ics.jung.graph.util.EdgeType arg3)booleanaddEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y)booleanaddEdge(java.lang.Long e, java.util.Collection<? extends java.lang.Integer> y, edu.uci.ics.jung.graph.util.EdgeType arg2)booleanaddVertex(java.lang.Integer x)booleancontainsEdge(java.lang.Long e)booleancontainsVertex(java.lang.Integer x)intdegree(java.lang.Integer x)java.lang.LongfindEdge(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.EdgeTypegetDefaultEdgeType()java.lang.IntegergetDest(java.lang.Long e)intgetEdgeCount()intgetEdgeCount(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.EdgeTypegetEdgeType(java.lang.Long e)edu.uci.ics.jung.graph.util.Pair<java.lang.Integer>getEndpoints(java.lang.Long e)intgetIncidentCount(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)intgetNeighborCount(java.lang.Integer x)java.util.Collection<java.lang.Integer>getNeighbors(java.lang.Integer x)java.lang.IntegergetOpposite(java.lang.Integer v, java.lang.Long e)java.util.Collection<java.lang.Long>getOutEdges(java.lang.Integer x)intgetPredecessorCount(java.lang.Integer x)java.util.Collection<java.lang.Integer>getPredecessors(java.lang.Integer x)java.lang.IntegergetSource(java.lang.Long e)intgetSuccessorCount(java.lang.Integer x)java.util.Collection<java.lang.Integer>getSuccessors(java.lang.Integer x)intgetVertexCount()java.util.Collection<java.lang.Integer>getVertices()intinDegree(java.lang.Integer x)booleanisArc(int x, int y)booleanisDest(java.lang.Integer v, java.lang.Long e)booleanisIncident(java.lang.Integer x, java.lang.Long e)booleanisNeighbor(java.lang.Integer x, java.lang.Integer y)booleanisPredecessor(java.lang.Integer x, java.lang.Integer y)booleanisSource(java.lang.Integer v, java.lang.Long e)booleanisSuccessor(java.lang.Integer x, java.lang.Integer y)static voidmain(java.lang.String[] arg)intoutDegree(java.lang.Integer x)booleanremoveEdge(java.lang.Long e)booleanremoveVertex(java.lang.Integer x)
-
-
-
Constructor Detail
-
JungAdapter
public JungAdapter(ImmutableGraph graph, ImmutableGraph transpose)
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- ifgraphhas more thanInteger.MAX_VALUEarcs (asgetEdgeCount()returns an integer).
-
-
Method Detail
-
getSource
public java.lang.Integer getSource(java.lang.Long e)
- Specified by:
getSourcein interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getSourcein interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getDest
public java.lang.Integer getDest(java.lang.Long e)
- Specified by:
getDestin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getDestin 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:
getEndpointsin 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:
getInEdgesin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getInEdgesin 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:
getOppositein 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:
getOutEdgesin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getOutEdgesin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getPredecessorCount
public int getPredecessorCount(java.lang.Integer x)
- Specified by:
getPredecessorCountin 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:
getPredecessorsin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getPredecessorsin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getSuccessorCount
public int getSuccessorCount(java.lang.Integer x)
- Specified by:
getSuccessorCountin 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:
getSuccessorsin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
getSuccessorsin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
inDegree
public int inDegree(java.lang.Integer x)
- Specified by:
inDegreein interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
inDegreein 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:
isDestin 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:
isPredecessorin 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:
isSourcein 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:
isSuccessorin interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>
-
outDegree
public int outDegree(java.lang.Integer x)
- Specified by:
outDegreein interfaceedu.uci.ics.jung.graph.Graph<java.lang.Integer,java.lang.Long>- Specified by:
outDegreein interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
containsEdge
public boolean containsEdge(java.lang.Long e)
- Specified by:
containsEdgein interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
containsVertex
public boolean containsVertex(java.lang.Integer x)
- Specified by:
containsVertexin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
degree
public int degree(java.lang.Integer x)
- Specified by:
degreein 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:
findEdgein 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:
findEdgeSetin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getDefaultEdgeType
public edu.uci.ics.jung.graph.util.EdgeType getDefaultEdgeType()
- Specified by:
getDefaultEdgeTypein interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdgeCount
public int getEdgeCount()
- Specified by:
getEdgeCountin 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:
getEdgeCountin 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:
getEdgeTypein interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getEdges
public java.util.Collection<java.lang.Long> getEdges()
- Specified by:
getEdgesin 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:
getEdgesin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getIncidentCount
public int getIncidentCount(java.lang.Long e)
- Specified by:
getIncidentCountin 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:
getIncidentEdgesin 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:
getIncidentVerticesin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getNeighborCount
public int getNeighborCount(java.lang.Integer x)
- Specified by:
getNeighborCountin 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:
getNeighborsin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getVertexCount
public int getVertexCount()
- Specified by:
getVertexCountin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
getVertices
public java.util.Collection<java.lang.Integer> getVertices()
- Specified by:
getVerticesin 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:
isIncidentin 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:
isNeighborin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>
-
removeEdge
public boolean removeEdge(java.lang.Long e)
- Specified by:
removeEdgein 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:
removeVertexin 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:
addEdgein 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:
addEdgein 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:
addEdgein 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:
addEdgein 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:
addVertexin interfaceedu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,java.lang.Long>- Throws:
java.lang.UnsupportedOperationException
-
main
public static void main(java.lang.String[] arg) throws java.io.IOException, com.martiansoftware.jsap.JSAPException- Throws:
java.io.IOExceptioncom.martiansoftware.jsap.JSAPException
-
-