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