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