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.*;
009
010/**
011 * Default implementation of the Female Digital Boolean Action socket
012 */
013public final class DefaultFemaleDigitalBooleanActionSocket
014        extends AbstractFemaleSocket
015        implements FemaleDigitalBooleanActionSocket {
016
017
018    public DefaultFemaleDigitalBooleanActionSocket(Base parent, FemaleSocketListener listener, String name) {
019        super(parent, listener, name);
020    }
021
022    @Override
023    public boolean isCompatible(MaleSocket socket) {
024        return socket instanceof MaleDigitalBooleanActionSocket;
025    }
026
027    @Override
028    public void execute(boolean value) throws JmriException {
029        if (isConnected()) {
030            ((MaleDigitalBooleanActionSocket)getConnectedSocket()).execute(value);
031        }
032    }
033
034    @Override
035    public String getShortDescription(Locale locale) {
036        return Bundle.getMessage(locale, "DefaultFemaleDigitalBooleanActionSocket_Short");
037    }
038
039    @Override
040    public String getLongDescription(Locale locale) {
041        return Bundle.getMessage(locale, "DefaultFemaleDigitalBooleanActionSocket_Long", getName());
042    }
043
044    @Override
045    public Map<Category, List<Class<? extends Base>>> getConnectableClasses() {
046        return InstanceManager.getDefault(DigitalBooleanActionManager.class).getActionClasses();
047    }
048
049    /** {@inheritDoc} */
050    @Override
051    public void disposeMe() {
052        // Do nothing
053    }
054
055}