Class PartialOrderUtils


  • public class PartialOrderUtils
    extends java.lang.Object
    Idea: store the constraints of a partial order in an int array. [0] number of events (e) [1..e] activity of event [e+1..e+e] start index of list of incoming edges [e+e+1..] incoming edge list: events
    Author:
    sander
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int[] addEdgeToLastAddedEvent​(int[] partialOrder, int eventIndexFrom)
      Add an edge to the edge with the highest index.
      static int[] addEvent​(int[] partialOrder, int transitionOrActivity)  
      static int[] emptyPartialOrder()  
      static int eventsLeft​(int[] partialOrder, java.util.BitSet state)  
      static int getActivity​(int[] partialOrder, int eventIndex)  
      static int[] getATotalOrder​(int[] partialOrder)  
      protected static int getIncomingEdgesNextStartAt​(int[] partialOrder, int eventIndex)  
      static int getIncomingEdgeSourceEventIndex​(int[] partialOrder, int eventIndex, int edgeIndex)  
      protected static int getIncomingEdgesStartAt​(int[] partialOrder, int eventIndex)  
      static java.util.BitSet getNewState​(int[] partialOrder)  
      static int getNumberOfEvents​(int[] partialOrder)  
      static int getNumberOfIncomingEdges​(int[] partialOrder, int eventIndex)  
      static int getTransition​(int[] partialOrder, int eventIndex)  
      static boolean hasBeenExecuted​(int[] partialOrder, java.util.BitSet state, int eventIndex)  
      static boolean isEnabled​(int[] partialOrder, int eventIndex, java.util.BitSet state)  
      static boolean isFullyConcurrent​(int[] partialOrder)  
      static boolean isTotalOrder​(int[] partialOrder)  
      static boolean isValid​(int[] partialOrder)  
      static void reset​(java.util.BitSet state)  
      static java.util.BitSet takeStep​(int[] partialOrder, int eventIndex, java.util.BitSet state)
      Marks the given event as executed (in place)
      static java.lang.String toGraphVizString​(int[] partialOrder)
      Helper method that creates a GraphViz .dot string for the visualization of the partial order
      static int[] totalOrder2partialOrder​(int[] totalOrder)  
      • Methods inherited from class java.lang.Object

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

      • PartialOrderUtils

        public PartialOrderUtils()
    • Method Detail

      • emptyPartialOrder

        public static int[] emptyPartialOrder()
      • addEvent

        public static int[] addEvent​(int[] partialOrder,
                                     int transitionOrActivity)
        Parameters:
        prefix -
        transitionOrActivity -
        Returns:
        a copy of the partial order with one event added with index length; concurrent with all other events.
      • addEdgeToLastAddedEvent

        public static int[] addEdgeToLastAddedEvent​(int[] partialOrder,
                                                    int eventIndexFrom)
        Add an edge to the edge with the highest index.
        Parameters:
        prefix -
        eventIndexP -
        eventIndexT -
        Returns:
      • isValid

        public static boolean isValid​(int[] partialOrder)
      • getNumberOfEvents

        public static int getNumberOfEvents​(int[] partialOrder)
      • getActivity

        public static int getActivity​(int[] partialOrder,
                                      int eventIndex)
      • getTransition

        public static int getTransition​(int[] partialOrder,
                                        int eventIndex)
      • getIncomingEdgesStartAt

        protected static int getIncomingEdgesStartAt​(int[] partialOrder,
                                                     int eventIndex)
        Parameters:
        partialOrder -
        eventIndex -
        Returns:
        the index in the array at which the list of incoming edges starts for this event
      • getNumberOfIncomingEdges

        public static int getNumberOfIncomingEdges​(int[] partialOrder,
                                                   int eventIndex)
      • getIncomingEdgesNextStartAt

        protected static int getIncomingEdgesNextStartAt​(int[] partialOrder,
                                                         int eventIndex)
      • getIncomingEdgeSourceEventIndex

        public static int getIncomingEdgeSourceEventIndex​(int[] partialOrder,
                                                          int eventIndex,
                                                          int edgeIndex)
      • getNewState

        public static java.util.BitSet getNewState​(int[] partialOrder)
      • takeStep

        public static java.util.BitSet takeStep​(int[] partialOrder,
                                                int eventIndex,
                                                java.util.BitSet state)
        Marks the given event as executed (in place)
        Parameters:
        partialOrder -
        eventIndex -
      • reset

        public static void reset​(java.util.BitSet state)
      • isEnabled

        public static boolean isEnabled​(int[] partialOrder,
                                        int eventIndex,
                                        java.util.BitSet state)
      • eventsLeft

        public static int eventsLeft​(int[] partialOrder,
                                     java.util.BitSet state)
      • hasBeenExecuted

        public static boolean hasBeenExecuted​(int[] partialOrder,
                                              java.util.BitSet state,
                                              int eventIndex)
      • toGraphVizString

        public static java.lang.String toGraphVizString​(int[] partialOrder)
        Helper method that creates a GraphViz .dot string for the visualization of the partial order
        Parameters:
        partialOrder - Partial order to be visualized
        Returns:
      • isTotalOrder

        public static boolean isTotalOrder​(int[] partialOrder)
        Parameters:
        partialOrder -
        Returns:
        whether the partial order is totally ordered.
      • isFullyConcurrent

        public static boolean isFullyConcurrent​(int[] partialOrder)
      • getATotalOrder

        public static int[] getATotalOrder​(int[] partialOrder)
        Parameters:
        partialOrder -
        Returns:
        an arbitrary total order that fits the partial order
      • totalOrder2partialOrder

        public static int[] totalOrder2partialOrder​(int[] totalOrder)
        Parameters:
        totalOrder -
        Returns:
        a partial order representation of this total order