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