001    package edu.jhu.mb.ernst.engine.queue;
002
003    import java.util.Comparator;
004    import java.util.PriorityQueue;
005
006    import edu.jhu.mb.ernst.engine.DiscreteEvent;
007    import edu.jhu.mb.ernst.engine.DiscreteEventQueue;
008
009    /***********************************************************************
010    * Static method library to manipulate DiscreteEventQueue instances.
011    * 
012    * @version
013    *   $Date: 2012-04-15 13:06:25 -0500 (Sun, 15 Apr 2012) $
014    *   $Rev: 7 $
015    *   $Author: croft $
016    * @since
017    *   2012-02-19
018    * @author
019    *   David Wallace Croft
020    ***********************************************************************/
021    public final class  DiscreteEventQueueLib
022    ////////////////////////////////////////////////////////////////////////
023    ////////////////////////////////////////////////////////////////////////
024    {
025    
026    public static void  process (
027      final DiscreteEventQueue  discreteEventQueue )
028    ////////////////////////////////////////////////////////////////////////
029    {
030      final DiscreteEvent  discreteEvent = discreteEventQueue.poll ( );
031      
032      if ( discreteEvent == null )
033      {
034        return;
035      }
036      
037      final boolean  reinsert = discreteEvent.process ( );
038      
039      if ( reinsert )
040      {
041        discreteEventQueue.offer ( discreteEvent );
042      }
043    }
044    
045    ////////////////////////////////////////////////////////////////////////
046    ////////////////////////////////////////////////////////////////////////
047    
048    private  DiscreteEventQueueLib ( )
049    ////////////////////////////////////////////////////////////////////////
050    {
051      // private constructor
052    }    
053    
054    ////////////////////////////////////////////////////////////////////////
055    ////////////////////////////////////////////////////////////////////////
056    }