Class DefaultParallelEdgeIndexFunction<V,​E>

  • All Implemented Interfaces:
    EdgeIndexFunction<V,​E>

    public class DefaultParallelEdgeIndexFunction<V,​E>
    extends java.lang.Object
    implements EdgeIndexFunction<V,​E>
    A class which creates and maintains indices for parallel edges. Parallel edges are defined here to be the collection of edges that are returned by v.findEdgeSet(w) for some v and w.

    At this time, users are responsible for resetting the indices (by calling reset()) if changes to the graph make it appropriate.

    Author:
    Joshua O'Madadhain, Tom Nelson
    • Field Detail

      • edge_index

        protected java.util.Map<Context<Graph<V,​E>,​E>,​java.lang.Integer> edge_index
    • Method Detail

      • getInstance

        public static <V,​E> DefaultParallelEdgeIndexFunction<V,​E> getInstance()
        Type Parameters:
        V - the vertex type
        E - the edge type
        Returns:
        an instance of this class
      • getIndex

        public int getIndex​(Graph<V,​E> graph,
                            E e)
        Returns the index for e in graph. Calculates the indices for e and for all edges parallel to e, if they are not already assigned.
        Specified by:
        getIndex in interface EdgeIndexFunction<V,​E>
        Parameters:
        graph - the graph with respect to which the index is calculated
        e - the edge whose index is to be queried
        Returns:
        e's index in graph
      • getIndex

        protected int getIndex​(Graph<V,​E> graph,
                               E e,
                               V v,
                               V u)
      • getIndex

        protected int getIndex​(Graph<V,​E> graph,
                               E e,
                               V v)
      • reset

        public void reset​(Graph<V,​E> graph,
                          E e)
        Resets the indices for this edge and its parallel edges. Should be invoked when an edge parallel to e has been added or removed.
        Specified by:
        reset in interface EdgeIndexFunction<V,​E>
        Parameters:
        graph - the graph for which the indices are to be reset
        e - the edge whose indices are to be reset
      • reset

        public void reset()
        Clears all edge indices for all edges in all graphs. Does not recalculate the indices.
        Specified by:
        reset in interface EdgeIndexFunction<V,​E>