001package jmri.jmrit.logixng.implementation; 002 003import java.util.List; 004import java.util.Locale; 005import java.util.Map; 006 007import jmri.*; 008import jmri.jmrit.logixng.Base; 009import jmri.jmrit.logixng.AnalogActionManager; 010import jmri.jmrit.logixng.FemaleAnalogActionSocket; 011import jmri.jmrit.logixng.FemaleSocketListener; 012import jmri.jmrit.logixng.MaleAnalogActionSocket; 013import jmri.jmrit.logixng.MaleSocket; 014 015/** 016 * Default implementation of the Female Analog Action socket 017 */ 018public final class DefaultFemaleAnalogActionSocket 019 extends AbstractFemaleSocket 020 implements FemaleAnalogActionSocket { 021 022 public DefaultFemaleAnalogActionSocket(Base parent, FemaleSocketListener listener, String name) { 023 super(parent, listener, name); 024 } 025 026 /** {@inheritDoc} */ 027 @Override 028 public boolean isCompatible(MaleSocket socket) { 029 return socket instanceof MaleAnalogActionSocket; 030 } 031 032 /** {@inheritDoc} */ 033 @Override 034 public Map<Category, List<Class<? extends Base>>> getConnectableClasses() { 035 return InstanceManager.getDefault(AnalogActionManager.class).getActionClasses(); 036 } 037 038 /** {@inheritDoc} */ 039 @Override 040 public void setValue(double value) throws JmriException { 041 if (isConnected()) { 042 ((MaleAnalogActionSocket)getConnectedSocket()).setValue(value); 043 } 044 } 045 046 /** {@inheritDoc} */ 047 @Override 048 public String getShortDescription(Locale locale) { 049 return Bundle.getMessage(locale, "DefaultFemaleAnalogActionSocket_Short"); 050 } 051 052 /** {@inheritDoc} */ 053 @Override 054 public String getLongDescription(Locale locale) { 055 return Bundle.getMessage(locale, "DefaultFemaleAnalogActionSocket_Long", getName()); 056 } 057 058 /** {@inheritDoc} */ 059 @Override 060 public void disposeMe() { 061 // Do nothing 062 } 063 064}