Class IncidentEdgeIndexFunction<V,​E>

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

    public class IncidentEdgeIndexFunction<V,​E>
    extends java.lang.Object
    implements EdgeIndexFunction<V,​E>
    A class which creates and maintains indices for incident edges.
    • Field Detail

      • edge_index

        protected java.util.Map<E,​java.lang.Integer> edge_index
    • Constructor Detail

      • IncidentEdgeIndexFunction

        private IncidentEdgeIndexFunction()
    • Method Detail

      • getInstance

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

        public int getIndex​(Graph<V,​E> graph,
                            E e)
        Returns the index for the specified edge. Calculates the indices for e and for all edges parallel to e.
        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 u,
                               V v)
      • 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 whose indices are to be reset
        e - the edge whose associated 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>