Class DebuggerMaleAnalogExpressionSocket
- java.lang.Object
-
- jmri.jmrit.logixng.implementation.AbstractMaleSocket
-
- jmri.jmrit.logixng.tools.debugger.AbstractDebuggerMaleSocket
-
- jmri.jmrit.logixng.tools.debugger.DebuggerMaleAnalogExpressionSocket
-
- All Implemented Interfaces:
java.lang.Comparable<NamedBean>
,PropertyChangeProvider
,AnalogExpression
,AnalogExpressionBean
,Base
,Debugable
,MaleAnalogExpressionSocket
,MaleSocket
,NamedBean
public class DebuggerMaleAnalogExpressionSocket extends AbstractDebuggerMaleSocket implements MaleAnalogExpressionSocket
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jmri.jmrit.logixng.Base
Base.PrintTreeSettings, Base.RunnableWithBase, Base.RunnableWithBaseThrowException
-
Nested classes/interfaces inherited from interface jmri.jmrit.logixng.Debugable
Debugable.DebugConfig
-
Nested classes/interfaces inherited from interface jmri.jmrit.logixng.MaleSocket
MaleSocket.ErrorHandlingType
-
Nested classes/interfaces inherited from interface jmri.NamedBean
NamedBean.BadNameException, NamedBean.BadSystemNameException, NamedBean.BadUserNameException, NamedBean.DisplayOptions, NamedBean.DuplicateSystemNameException
-
-
Field Summary
-
Fields inherited from class jmri.jmrit.logixng.implementation.AbstractMaleSocket
_localVariables
-
Fields inherited from interface jmri.jmrit.logixng.Base
PRINT_LINE_NUMBERS_FORMAT, PROPERTY_CHILD_COUNT, PROPERTY_CHILD_REORDER, PROPERTY_LAST_RESULT_CHANGED, PROPERTY_SOCKET_CONNECTED, PROPERTY_SOCKET_DISCONNECTED, SEPARATOR, SOCKET_CONNECTED, SOCKET_DISCONNECTED
-
Fields inherited from interface jmri.NamedBean
DISPLAY_NAME_FORMAT, INCONSISTENT, PROPERTY_STATE, QUOTED_NAME_FORMAT, UNKNOWN
-
-
Constructor Summary
Constructors Constructor Description DebuggerMaleAnalogExpressionSocket(BaseManager<MaleAnalogExpressionSocket> manager, MaleAnalogExpressionSocket maleSocket)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareSystemNameSuffix(java.lang.String suffix1, java.lang.String suffix2, NamedBean n2)
Compare the suffix of this NamedBean's name with the suffix of the argument NamedBean's name for theNamedBean.compareTo(jmri.NamedBean)
operation.java.lang.String
describeState(int state)
Provide human-readable, localized version of state value.double
evaluate()
Evaluate this expression.java.lang.String
getAfterInfo()
Get information about this action/expression after it is executed or evaluated.java.lang.String
getBeanType()
For instances in the code where we are dealing with just a bean and a message needs to be passed to the user or in a log.java.lang.String
getBeforeInfo()
Get information about this action/expression before it is executed or evaluated.java.lang.Object
getProperty(java.lang.String key)
Retrieve the value associated with a key.java.util.Set<java.lang.String>
getPropertyKeys()
Retrieve the complete current set of keys.int
getState()
Provide generic access to internal state.boolean
getTriggerOnChange()
Get whenether this expression should trigger the ConditionalNG if the named beans it listens to changes state.void
removeProperty(java.lang.String key)
Remove the key/value pair against the NamedBean.void
setProperty(java.lang.String key, java.lang.Object value)
Attach a key/value pair to the NamedBean, which can be retrieved later.void
setState(int s)
Provide generic access to internal state.void
setTriggerOnChange(boolean triggerOnChange)
Set whenether this expression should trigger the ConditionalNG if the named beans it listens to changes state.-
Methods inherited from class jmri.jmrit.logixng.tools.debugger.AbstractDebuggerMaleSocket
after, before, createDebugConfig, disposeMe, getBreakpointAfter, getBreakpointBefore, getComment, getDebugConfig, getLogAfter, getLogBefore, isDebuggerActive, isEnabled, isLogAllAfter, isLogAllBefore, registerListenersForThisClass, setBreakpointAfter, setBreakpointBefore, setComment, setDebugConfig, setEnabled, setEnabledFlag, setLogAfter, setLogBefore, setParent, setStepInto, unregisterListenersForThisClass
-
Methods inherited from class jmri.jmrit.logixng.implementation.AbstractMaleSocket
addLocalVariable, addLocalVariable, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListener, clearLocalVariables, deepCopyChildren, dispose, getCatchAbortExecution, getCategory, getChild, getChildCount, getConditionalNG, getDeepCopy, getErrorHandlingType, getListen, getListenerRef, getListenerRefs, getListenerRefsIncludingChildren, getLocalVariables, getLogixNG, getLongDescription, getManager, getNumPropertyChangeListeners, getObject, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeListenersByReference, getRoot, getShortDescription, getSystemName, getUsageDetail, getUsageTree, getUserName, handleError, handleError, handleError, hasChild, isActive, isLocked, isSystem, printLocalVariable, printTree, printTree, printTree, printTreeRow, registerListeners, removePropertyChangeListener, removePropertyChangeListener, setCatchAbortExecution, setErrorHandlingType, setListen, setLocked, setParentForAllChildren, setSystem, setUserName, toString, unregisterListeners, updateListenerRef, vetoableChange
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jmri.jmrit.logixng.Base
addPropertyChangeListener, addPropertyChangeListener, deepCopyChildren, dispose, doSocketOperation, existsInTree, forEntireTree, forEntireTreeWithException, getCategory, getChild, getChildCount, getComment, getConditionalNG, getDeepCopy, getListenerRef, getListenerRefs, getListenerRefsIncludingChildren, getLogixNG, getLongDescription, getLongDescription, getModule, getNumPropertyChangeListeners, getParent, getPropertyChangeListenersByReference, getRoot, getShortDescription, getShortDescription, getSystemName, getUsageDetail, getUsageTree, getUserName, hasChild, isActive, isSocketOperationAllowed, printTree, printTree, printTree, printTree, printTree, registerListeners, setComment, setParent, setParentForAllChildren, setUserName, unregisterListeners, updateListenerRef, vetoableChange
-
Methods inherited from interface jmri.jmrit.logixng.Debugable
createDebugConfig, getDebugConfig, setDebugConfig
-
Methods inherited from interface jmri.jmrit.logixng.MaleSocket
addLocalVariable, addLocalVariable, clearLocalVariables, find, getCatchAbortExecution, getErrorHandlingType, getListen, getLocalVariables, getManager, getObject, handleError, handleError, handleError, isEnabled, isLocked, isSupportingLocalVariables, isSystem, setCatchAbortExecution, setEnabled, setEnabledFlag, setErrorHandlingType, setListen, setLocked, setSystem, setup
-
Methods inherited from interface jmri.NamedBean
addPropertyChangeListener, addPropertyChangeListener, compareTo, dispose, getComment, getDisplayName, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getPropertyChangeListenersByReference, getRecommendedToolTip, getSystemName, getUsageReport, getUserName, setComment, setUserName, toString, updateListenerRef, vetoableChange
-
Methods inherited from interface jmri.beans.PropertyChangeProvider
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
-
-
-
Constructor Detail
-
DebuggerMaleAnalogExpressionSocket
public DebuggerMaleAnalogExpressionSocket(BaseManager<MaleAnalogExpressionSocket> manager, MaleAnalogExpressionSocket maleSocket)
-
-
Method Detail
-
getBeforeInfo
public java.lang.String getBeforeInfo()
Get information about this action/expression before it is executed or evaluated.- Specified by:
getBeforeInfo
in classAbstractDebuggerMaleSocket
- Returns:
- an information string
-
getAfterInfo
public java.lang.String getAfterInfo()
Get information about this action/expression after it is executed or evaluated.- Specified by:
getAfterInfo
in classAbstractDebuggerMaleSocket
- Returns:
- an information string
-
evaluate
public double evaluate() throws JmriException
Description copied from interface:MaleAnalogExpressionSocket
Evaluate this expression.This method must ensure that the result is not a Double.NaN, negative infinity or positive infinity. If that is the case, it must throw an IllegalArgumentException before checking if an error has occured.
If the socket is not enabled, the method returns the value 0.0f.
If an error occurs and are handled, the method returns the value 0.0f.
- Specified by:
evaluate
in interfaceAnalogExpression
- Specified by:
evaluate
in interfaceMaleAnalogExpressionSocket
- Returns:
- the result of the evaluation. The male socket that holds this expression throws an exception if this value is a Double.NaN or an infinite number.
- Throws:
JmriException
- when an exception occurs
-
setState
public void setState(int s) throws JmriException
Description copied from interface:NamedBean
Provide generic access to internal state.This generally shouldn't be used by Java code; use the class-specific form instead (e.g. setCommandedState in Turnout). This is provided to make scripts access easier to read.
- Specified by:
setState
in interfaceNamedBean
- Parameters:
s
- the state- Throws:
JmriException
- general error when setting the state fails
-
getState
public int getState()
Description copied from interface:NamedBean
Provide generic access to internal state.This generally shouldn't be used by Java code; use the class-specific form instead (e.g. getCommandedState in Turnout). This is provided to make scripts easier to read.
-
describeState
public java.lang.String describeState(int state)
Description copied from interface:NamedBean
Provide human-readable, localized version of state value.This method is intended for use when presenting to a human operator.
- Specified by:
describeState
in interfaceNamedBean
- Parameters:
state
- the state to describe- Returns:
- the state in localized form
-
setProperty
public void setProperty(java.lang.String key, java.lang.Object value)
Description copied from interface:NamedBean
Attach a key/value pair to the NamedBean, which can be retrieved later. These are not bound properties as yet, and don't throw events on modification. Key must not be null.The key is constrained to String to make these behave like normal Java Beans.
- Specified by:
setProperty
in interfaceNamedBean
- Parameters:
key
- the property to setvalue
- the value of the property
-
getProperty
public java.lang.Object getProperty(java.lang.String key)
Description copied from interface:NamedBean
Retrieve the value associated with a key. If no value has been set for that key, returns null.- Specified by:
getProperty
in interfaceNamedBean
- Parameters:
key
- the property to get- Returns:
- The value of the property or null.
-
removeProperty
public void removeProperty(java.lang.String key)
Description copied from interface:NamedBean
Remove the key/value pair against the NamedBean.- Specified by:
removeProperty
in interfaceNamedBean
- Parameters:
key
- the property to remove
-
getPropertyKeys
public java.util.Set<java.lang.String> getPropertyKeys()
Description copied from interface:NamedBean
Retrieve the complete current set of keys.- Specified by:
getPropertyKeys
in interfaceNamedBean
- Returns:
- empty set if none
-
getBeanType
public java.lang.String getBeanType()
Description copied from interface:NamedBean
For instances in the code where we are dealing with just a bean and a message needs to be passed to the user or in a log.- Specified by:
getBeanType
in interfaceNamedBean
- Returns:
- a string of the bean type, eg Turnout, Sensor etc
-
compareSystemNameSuffix
public int compareSystemNameSuffix(java.lang.String suffix1, java.lang.String suffix2, NamedBean n2)
Description copied from interface:NamedBean
Compare the suffix of this NamedBean's name with the suffix of the argument NamedBean's name for theNamedBean.compareTo(jmri.NamedBean)
operation. This is intended to be a system-specific comparison that understands the various formats, etc.- Specified by:
compareSystemNameSuffix
in interfaceNamedBean
- Parameters:
suffix1
- The suffix for the 1st bean in the comparisonsuffix2
- The suffix for the 2nd bean in the comparisonn2
- The other (second) NamedBean in the comparison- Returns:
- -1,0,+1 for ordering if the names are well-formed; may not provide proper ordering if the names are not well-formed.
-
setTriggerOnChange
public void setTriggerOnChange(boolean triggerOnChange)
Description copied from interface:AnalogExpression
Set whenether this expression should trigger the ConditionalNG if the named beans it listens to changes state.- Specified by:
setTriggerOnChange
in interfaceAnalogExpression
- Parameters:
triggerOnChange
- true if trigger on change, false otherwise
-
getTriggerOnChange
public boolean getTriggerOnChange()
Description copied from interface:AnalogExpression
Get whenether this expression should trigger the ConditionalNG if the named beans it listens to changes state.- Specified by:
getTriggerOnChange
in interfaceAnalogExpression
- Returns:
- true if trigger on change, false otherwise
-
-