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 Analog Expression socket
012 */
013public class DefaultFemaleAnalogExpressionSocket extends AbstractFemaleSocket
014        implements FemaleAnalogExpressionSocket {
015
016
017    public DefaultFemaleAnalogExpressionSocket(Base parent, FemaleSocketListener listener, String name) {
018        super(parent, listener, name);
019    }
020
021    /** {@inheritDoc} */
022    @Override
023    public boolean isCompatible(MaleSocket socket) {
024        return socket instanceof MaleAnalogExpressionSocket;
025    }
026
027    /** {@inheritDoc} */
028    @Override
029    public double evaluate() throws JmriException {
030        if (isConnected()) {
031            return ((MaleAnalogExpressionSocket)getConnectedSocket()).evaluate();
032        } else {
033            return 0.0;
034        }
035    }
036
037    /** {@inheritDoc} */
038    @Override
039    public boolean getTriggerOnChange() {
040        throw new UnsupportedOperationException("Not supported");
041    }
042
043    /** {@inheritDoc} */
044    @Override
045    public void setTriggerOnChange(boolean triggerOnChange) {
046        throw new UnsupportedOperationException("Not supported");
047    }
048
049    /** {@inheritDoc} */
050    @Override
051    public String getShortDescription(Locale locale) {
052        return Bundle.getMessage(locale, "DefaultFemaleAnalogExpressionSocket_Short");
053    }
054
055    /** {@inheritDoc} */
056    @Override
057    public String getLongDescription(Locale locale) {
058        return Bundle.getMessage(locale, "DefaultFemaleAnalogExpressionSocket_Long", getName());
059    }
060
061    /** {@inheritDoc} */
062    @Override
063    public Map<Category, List<Class<? extends Base>>> getConnectableClasses() {
064        return InstanceManager.getDefault(AnalogExpressionManager.class).getExpressionClasses();
065    }
066
067    /** {@inheritDoc} */
068    @Override
069    public void disposeMe() {
070        // Do nothing
071    }
072
073}