001 package edu.jhu.mb.ernst.model.event; 002 003 import org.slf4j.Logger; 004 import org.slf4j.LoggerFactory; 005 006 import edu.jhu.mb.ernst.engine.DiscreteEvent; 007 import edu.jhu.mb.ernst.model.ModulatedSynapse; 008 import edu.jhu.mb.ernst.util.seq.Seq; 009 010 /*********************************************************************** 011 * Default implementation of a Modulation DiscreteEvent. 012 * 013 * @version 014 * $Date: 2012-04-15 13:06:25 -0500 (Sun, 15 Apr 2012) $ 015 * $Rev: 7 $ 016 * $Author: croft $ 017 * @since 018 * 2012-02-19 019 * @author 020 * David Wallace Croft 021 ***********************************************************************/ 022 public final class DefaultModulationDiscreteEventImp 023 implements DiscreteEvent 024 //////////////////////////////////////////////////////////////////////// 025 //////////////////////////////////////////////////////////////////////// 026 { 027 028 private static final Class<DefaultModulationDiscreteEventImp> 029 CLASS = DefaultModulationDiscreteEventImp.class; 030 031 private static final Logger 032 LOGGER = LoggerFactory.getLogger ( CLASS ); 033 034 // 035 036 private final double time; 037 038 private final String key; 039 040 private final double factor; 041 042 private final Seq<ModulatedSynapse> modulatedSynapseSeq; 043 044 //////////////////////////////////////////////////////////////////////// 045 //////////////////////////////////////////////////////////////////////// 046 047 public DefaultModulationDiscreteEventImp ( 048 final double time, 049 final String key, 050 final double factor, 051 final Seq<ModulatedSynapse> modulatedSynapseSeq ) 052 //////////////////////////////////////////////////////////////////////// 053 { 054 this.time = time; 055 056 this.key = key; 057 058 this.factor = factor; 059 060 this.modulatedSynapseSeq = modulatedSynapseSeq; 061 } 062 063 //////////////////////////////////////////////////////////////////////// 064 //////////////////////////////////////////////////////////////////////// 065 066 @Override 067 public double getTime ( ) 068 //////////////////////////////////////////////////////////////////////// 069 { 070 return time; 071 } 072 073 @Override 074 public boolean process ( ) 075 //////////////////////////////////////////////////////////////////////// 076 { 077 LOGGER.trace ( "process() entered" ); 078 079 final int size = modulatedSynapseSeq.size ( ); 080 081 for ( int i = 0; i < size; i++ ) 082 { 083 final ModulatedSynapse 084 modulatedSynapse = modulatedSynapseSeq.get ( i ); 085 086 modulatedSynapse.setModulationFactor ( key, factor ); 087 } 088 089 LOGGER.trace ( "process() exiting" ); 090 091 return false; 092 } 093 094 //////////////////////////////////////////////////////////////////////// 095 //////////////////////////////////////////////////////////////////////// 096 }