Class 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 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.

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getSource

        public java.lang.Integer getSource​(java.lang.Long e)
        Specified by:
        getSource in interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getSource in interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getDest in interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getInEdges in interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getOutEdges in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getPredecessorCount

        public int getPredecessorCount​(java.lang.Integer x)
        Specified by:
        getPredecessorCount in interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getPredecessors in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getSuccessorCount

        public int getSuccessorCount​(java.lang.Integer x)
        Specified by:
        getSuccessorCount in interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        getSuccessors in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • inDegree

        public int inDegree​(java.lang.Integer x)
        Specified by:
        inDegree in interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        inDegree in interface edu.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 interface edu.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 interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
      • outDegree

        public int outDegree​(java.lang.Integer x)
        Specified by:
        outDegree in interface edu.uci.ics.jung.graph.Graph<java.lang.Integer,​java.lang.Long>
        Specified by:
        outDegree in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • containsEdge

        public boolean containsEdge​(java.lang.Long e)
        Specified by:
        containsEdge in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • containsVertex

        public boolean containsVertex​(java.lang.Integer x)
        Specified by:
        containsVertex in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • degree

        public int degree​(java.lang.Integer x)
        Specified by:
        degree in interface edu.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 interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getEdgeCount

        public int getEdgeCount()
        Specified by:
        getEdgeCount in interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getEdges

        public java.util.Collection<java.lang.Long> getEdges()
        Specified by:
        getEdges in interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getIncidentCount

        public int getIncidentCount​(java.lang.Long e)
        Specified by:
        getIncidentCount in interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getNeighborCount

        public int getNeighborCount​(java.lang.Integer x)
        Specified by:
        getNeighborCount in interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getVertexCount

        public int getVertexCount()
        Specified by:
        getVertexCount in interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • getVertices

        public java.util.Collection<java.lang.Integer> getVertices()
        Specified by:
        getVertices in interface edu.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 interface edu.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 interface edu.uci.ics.jung.graph.Hypergraph<java.lang.Integer,​java.lang.Long>
      • removeEdge

        public boolean removeEdge​(java.lang.Long e)
        Specified by:
        removeEdge in interface edu.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 interface edu.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 interface edu.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 interface edu.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 interface edu.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 interface edu.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 interface edu.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.IOException
        com.martiansoftware.jsap.JSAPException