001    package edu.jhu.mb.ernst.engine.event;
002    
003    import java.util.Comparator;
004
005    import edu.jhu.mb.ernst.engine.DiscreteEvent;
006    
007    /***********************************************************************
008    * Default implementation of a DiscreteEvent Comparator.
009    * 
010    * @version
011    *   $Date: 2012-04-15 13:06:25 -0500 (Sun, 15 Apr 2012) $
012    *   $Rev: 7 $
013    *   $Author: croft $
014    * @since
015    *   2012-02-19
016    * @author
017    *   David Wallace Croft
018    ***********************************************************************/
019    public final class  DefaultDiscreteEventComparatorImp
020      implements Comparator<DiscreteEvent>
021    ////////////////////////////////////////////////////////////////////////
022    ////////////////////////////////////////////////////////////////////////
023    {
024    
025    public static final DefaultDiscreteEventComparatorImp
026      INSTANCE = new DefaultDiscreteEventComparatorImp ( );
027    
028    ////////////////////////////////////////////////////////////////////////
029    ////////////////////////////////////////////////////////////////////////
030    
031    public  DefaultDiscreteEventComparatorImp ( )
032    ////////////////////////////////////////////////////////////////////////
033    {
034      // public no-argument constructor to support dynamic class loading
035    }
036
037    ////////////////////////////////////////////////////////////////////////
038    ////////////////////////////////////////////////////////////////////////
039    
040    @Override
041    public int  compare (
042      final DiscreteEvent  discreteEvent0,
043      final DiscreteEvent  discreteEvent1 )
044    ////////////////////////////////////////////////////////////////////////
045    {
046      final double
047        time0 = discreteEvent0.getTime ( ),
048        time1 = discreteEvent1.getTime ( );
049      
050      if ( time0 < time1 )
051      {
052        return -1;
053      }
054      
055      if ( time0 > time1 )
056      {
057        return 1;
058      }
059      
060      return 0;
061    }
062    
063    ////////////////////////////////////////////////////////////////////////
064    ////////////////////////////////////////////////////////////////////////
065    }