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}