001 package edu.jhu.mb.ernst.model.factory; 002 003 import edu.jhu.mb.ernst.engine.DiscreteEvent; 004 import edu.jhu.mb.ernst.model.*; 005 import edu.jhu.mb.ernst.model.event.DefaultModulationDiscreteEventImp; 006 import edu.jhu.mb.ernst.model.synapse.MutableSynapseImp; 007 import edu.jhu.mb.ernst.model.synapse.ModulatedSynapseImp; 008 import edu.jhu.mb.ernst.util.seq.Seq; 009 010 /*********************************************************************** 011 * Default implementation of interface ModelFactory. 012 * 013 * @version 014 * $Date: 2012-04-15 13:41:48 -0500 (Sun, 15 Apr 2012) $ 015 * $Rev: 8 $ 016 * $Author: croft $ 017 * @since 018 * 2012-02-19 019 * @author 020 * David Wallace Croft 021 ***********************************************************************/ 022 public class DefaultModelFactoryImp 023 implements ModelFactory 024 //////////////////////////////////////////////////////////////////////// 025 //////////////////////////////////////////////////////////////////////// 026 { 027 028 public static final DefaultModelFactoryImp 029 INSTANCE = new DefaultModelFactoryImp ( ); 030 031 //////////////////////////////////////////////////////////////////////// 032 //////////////////////////////////////////////////////////////////////// 033 034 public DefaultModelFactoryImp ( ) 035 //////////////////////////////////////////////////////////////////////// 036 { 037 // public no-argument constructor to support dynamic class loading 038 } 039 040 //////////////////////////////////////////////////////////////////////// 041 //////////////////////////////////////////////////////////////////////// 042 043 @Override 044 public ModulatedSynapse createModulatedSynapse ( 045 final int targetNeuronIndex, 046 final byte type, 047 final float weight ) 048 //////////////////////////////////////////////////////////////////////// 049 { 050 return new ModulatedSynapseImp ( 051 targetNeuronIndex, 052 type, 053 weight ); 054 } 055 056 @Override 057 public DiscreteEvent createModulationDiscreteEvent ( 058 final double time, 059 final String key, 060 final double factor, 061 final Seq<ModulatedSynapse> modulatedSynapseSeq ) 062 //////////////////////////////////////////////////////////////////////// 063 { 064 return new DefaultModulationDiscreteEventImp ( 065 time, 066 key, 067 factor, 068 modulatedSynapseSeq ); 069 } 070 071 @Override 072 public MutableSynapse createMutableSynapse ( 073 final int targetNeuronIndex, 074 final byte type, 075 final float weight ) 076 //////////////////////////////////////////////////////////////////////// 077 { 078 return new MutableSynapseImp ( 079 targetNeuronIndex, 080 type, 081 weight ); 082 } 083 084 @Override 085 public Synapse createSynapse ( 086 final int targetNeuronIndex, 087 final byte type, 088 final float weight ) 089 //////////////////////////////////////////////////////////////////////// 090 { 091 return new ModulatedSynapseImp ( 092 targetNeuronIndex, 093 type, 094 weight ); 095 } 096 097 //////////////////////////////////////////////////////////////////////// 098 //////////////////////////////////////////////////////////////////////// 099 }