001package jmri.jmrit.logixng;
002
003import jmri.JmriException;
004
005/**
006 * A LogixNG male AnalogExpressionBean socket.
007 */
008public interface MaleAnalogExpressionSocket
009        extends MaleSocket, AnalogExpressionBean {
010
011    /**
012     * {@inheritDoc}
013     * <P>
014     * This method must ensure that the result is not a Double.NaN, negative
015     * infinity or positive infinity. If that is the case, it must throw an
016     * IllegalArgumentException before checking if an error has occured.
017     * <P>
018     * If the socket is not enabled, the method returns the value 0.0f.
019     * <P>
020     * If an error occurs and are handled, the method returns the value 0.0f.
021     * @throws JmriException when an exception occurs
022     * @throws IllegalArgumentException if the result a Double.NaN, negative
023     * infinity or positive infinity
024     */
025    @Override
026    double evaluate() throws JmriException;
027    
028}