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 }