001 package com.croftsoft.core.ai.neuro.imp; 002 003 import com.croftsoft.core.ai.neuro.ChannelSim; 004 005 /*********************************************************************** 006 * Mutable Channel implementation that snaps shut when updated. 007 * 008 * @version 009 * $Id: SnapChannel.java,v 1.5 2008/07/25 23:32:22 croft Exp $ 010 * @since 011 * 2008-07-19 012 * @author 013 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 014 ***********************************************************************/ 015 016 public class SnapChannel 017 implements ChannelSim 018 //////////////////////////////////////////////////////////////////////// 019 //////////////////////////////////////////////////////////////////////// 020 { 021 022 private double 023 conductance, 024 reversalPotential; 025 026 private boolean open; 027 028 //////////////////////////////////////////////////////////////////////// 029 //////////////////////////////////////////////////////////////////////// 030 031 public SnapChannel ( 032 final double conductance, 033 final double reversalPotential, 034 final boolean open ) 035 //////////////////////////////////////////////////////////////////////// 036 { 037 this.conductance = conductance; 038 039 this.reversalPotential = reversalPotential; 040 041 this.open = open; 042 } 043 044 public SnapChannel ( 045 final double conductance, 046 final double reversalPotential ) 047 //////////////////////////////////////////////////////////////////////// 048 { 049 this ( conductance, reversalPotential, false ); 050 } 051 052 //////////////////////////////////////////////////////////////////////// 053 //////////////////////////////////////////////////////////////////////// 054 055 public double getConductance ( ) 056 //////////////////////////////////////////////////////////////////////// 057 { 058 return conductance; 059 } 060 061 public double getReversalPotential ( ) 062 //////////////////////////////////////////////////////////////////////// 063 { 064 return reversalPotential; 065 } 066 067 public boolean isOpen ( ) 068 //////////////////////////////////////////////////////////////////////// 069 { 070 return open; 071 } 072 073 //////////////////////////////////////////////////////////////////////// 074 //////////////////////////////////////////////////////////////////////// 075 076 public void setConductance ( final double conductance ) 077 //////////////////////////////////////////////////////////////////////// 078 { 079 this.conductance = conductance; 080 } 081 082 public void setOpen ( final boolean open ) 083 //////////////////////////////////////////////////////////////////////// 084 { 085 this.open = open; 086 } 087 088 public void setReversalPotential ( final double reversalPotential ) 089 //////////////////////////////////////////////////////////////////////// 090 { 091 this.reversalPotential = reversalPotential; 092 } 093 094 //////////////////////////////////////////////////////////////////////// 095 //////////////////////////////////////////////////////////////////////// 096 097 public void access ( ) 098 //////////////////////////////////////////////////////////////////////// 099 { 100 // empty 101 } 102 103 public void mutate ( ) 104 //////////////////////////////////////////////////////////////////////// 105 { 106 if ( open ) 107 { 108 open = false; 109 } 110 } 111 112 //////////////////////////////////////////////////////////////////////// 113 //////////////////////////////////////////////////////////////////////// 114 }