|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface Conditional
A Conditional is layout control logic, consisting of a logical expression and an action.
A Conditional does not exist on its own, but is part of a Logix. The system name of each Conditional is set automatically when the conditional is created. It begins with the system name of its parent Logix. There is no Conditional Table. Conditionals are created, editted, and deleted via the Logix Table.
A Conditional has a "state", which changes depending on whether its logical expression calculates to TRUE or FALSE. The "state" may not be changed by the user. It only changes in response to changes in the "state variables" used in its logical expression.
Listeners may be set to monitor a change in the state of a conditional.
JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.
JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
| Fields inherited from interface jmri.NamedBean |
|---|
INCONSISTENT |
| Method Summary | |
|---|---|
void |
addPropertyChangeListener(PropertyChangeListener l)
Request a call-back when the bound KnownState property changes. |
int |
calculate(boolean enabled,
PropertyChangeEvent evt)
Calculate this Conditional, triggering either or both actions if the user specified conditions are met, and the Logix is enabled. |
void |
cancelSensorTimer(String sname)
Stop a sensor timer if one is actively delaying setting of the specified sensor |
void |
cancelTurnoutTimer(String sname)
Stop a turnout timer if one is actively delaying setting of the specified turnout |
void |
dispose()
Remove references to and from this object, so that it can eventually be garbage-collected. |
String |
getAntecedentExpression()
Get antecedent (boolean expression) of Conditional |
ArrayList<ConditionalAction> |
getCopyOfActions()
Make deep clone of actions |
ArrayList<ConditionalVariable> |
getCopyOfStateVariables()
Make deep clone of variables |
int |
getLogicType()
Get type of operators in the antecedent statement |
int |
getState()
State of the Conditional is returned. |
boolean |
getTriggerOnChange()
|
void |
removePropertyChangeListener(PropertyChangeListener l)
Remove a request for a call-back when a bound property changes. |
void |
setAction(ArrayList<ConditionalAction> arrayList)
Set list of actions |
void |
setLogicType(int type,
String antecedent)
set the logic type (all AND's all OR's or mixed AND's and OR's set the antecedent expression - should be a well formed boolean statement with parenthesis indicating the order of evaluation |
void |
setStateVariables(ArrayList<ConditionalVariable> arrayList)
Set State Variables for this Conditional. |
void |
setTriggerOnChange(boolean trigger)
Set policy for execution of action list |
String |
validateAntecedent(String ant,
ArrayList<ConditionalVariable> variableList)
Check that an antecedent is well formed. |
| Methods inherited from interface jmri.NamedBean |
|---|
addPropertyChangeListener, getComment, getDisplayName, getListenerRef, getListenerRefs, getNumPropertyChangeListeners, getProperty, getPropertyChangeListeners, getPropertyKeys, getSystemName, getUserName, removeProperty, setComment, setProperty, setState, setUserName, updateListenerRef |
| Field Detail |
|---|
static final int TRUE
static final int FALSE
static final int UNKNOWN
static final int ALL_AND
static final int ALL_OR
static final int MIXED
static final int OPERATOR_AND
static final int OPERATOR_NOT
static final int OPERATOR_AND_NOT
static final int OPERATOR_NONE
static final int OPERATOR_OR
static final int OPERATOR_OR_NOT
static final int TYPE_NONE
static final int TYPE_SENSOR_ACTIVE
static final int TYPE_SENSOR_INACTIVE
static final int TYPE_TURNOUT_THROWN
static final int TYPE_TURNOUT_CLOSED
static final int TYPE_CONDITIONAL_TRUE
static final int TYPE_CONDITIONAL_FALSE
static final int TYPE_LIGHT_ON
static final int TYPE_LIGHT_OFF
static final int TYPE_MEMORY_EQUALS
static final int TYPE_FAST_CLOCK_RANGE
static final int TYPE_SIGNAL_HEAD_RED
static final int TYPE_SIGNAL_HEAD_YELLOW
static final int TYPE_SIGNAL_HEAD_GREEN
static final int TYPE_SIGNAL_HEAD_DARK
static final int TYPE_SIGNAL_HEAD_FLASHRED
static final int TYPE_SIGNAL_HEAD_FLASHYELLOW
static final int TYPE_SIGNAL_HEAD_FLASHGREEN
static final int TYPE_SIGNAL_HEAD_LIT
static final int TYPE_SIGNAL_HEAD_HELD
static final int TYPE_MEMORY_COMPARE
static final int TYPE_SIGNAL_HEAD_LUNAR
static final int TYPE_SIGNAL_HEAD_FLASHLUNAR
static final int TYPE_MEMORY_EQUALS_INSENSITIVE
static final int TYPE_MEMORY_COMPARE_INSENSITIVE
static final int TYPE_ROUTE_FREE
static final int TYPE_ROUTE_OCCUPIED
static final int TYPE_ROUTE_ALLOCATED
static final int TYPE_ROUTE_SET
static final int TYPE_TRAIN_RUNNING
static final int TYPE_SIGNAL_MAST_ASPECT_EQUALS
static final int TYPE_SIGNAL_MAST_LIT
static final int TYPE_SIGNAL_MAST_HELD
static final int TYPE_SIGNAL_HEAD_APPEARANCE_EQUALS
static final int TYPE_BLOCK_STATUS_EQUALS
static final int TYPE_ENTRYEXIT_ACTIVE
static final int TYPE_ENTRYEXIT_INACTIVE
static final int ACTION_OPTION_ON_CHANGE_TO_TRUE
static final int ACTION_OPTION_ON_CHANGE_TO_FALSE
static final int ACTION_OPTION_ON_CHANGE
static final int NUM_ACTION_OPTIONS
static final int ACTION_NONE
static final int ACTION_SET_TURNOUT
static final int ACTION_SET_SIGNAL_APPEARANCE
static final int ACTION_SET_SIGNAL_HELD
static final int ACTION_CLEAR_SIGNAL_HELD
static final int ACTION_SET_SIGNAL_DARK
static final int ACTION_SET_SIGNAL_LIT
static final int ACTION_TRIGGER_ROUTE
static final int ACTION_SET_SENSOR
static final int ACTION_DELAYED_SENSOR
static final int ACTION_SET_LIGHT
static final int ACTION_SET_MEMORY
static final int ACTION_ENABLE_LOGIX
static final int ACTION_DISABLE_LOGIX
static final int ACTION_PLAY_SOUND
static final int ACTION_RUN_SCRIPT
static final int ACTION_DELAYED_TURNOUT
static final int ACTION_LOCK_TURNOUT
static final int ACTION_RESET_DELAYED_SENSOR
static final int ACTION_CANCEL_SENSOR_TIMERS
static final int ACTION_RESET_DELAYED_TURNOUT
static final int ACTION_CANCEL_TURNOUT_TIMERS
static final int ACTION_SET_FAST_CLOCK_TIME
static final int ACTION_START_FAST_CLOCK
static final int ACTION_STOP_FAST_CLOCK
static final int ACTION_COPY_MEMORY
static final int ACTION_SET_LIGHT_INTENSITY
static final int ACTION_SET_LIGHT_TRANSITION_TIME
static final int ACTION_CONTROL_AUDIO
static final int ACTION_JYTHON_COMMAND
static final int ACTION_ALLOCATE_WARRANT_ROUTE
static final int ACTION_DEALLOCATE_WARRANT_ROUTE
static final int ACTION_SET_ROUTE_TURNOUTS
static final int ACTION_AUTO_RUN_WARRANT
static final int ACTION_CONTROL_TRAIN
static final int ACTION_SET_TRAIN_ID
static final int ACTION_SET_SIGNALMAST_ASPECT
static final int ACTION_THROTTLE_FACTOR
static final int ACTION_SET_SIGNALMAST_HELD
static final int ACTION_CLEAR_SIGNALMAST_HELD
static final int ACTION_SET_SIGNALMAST_DARK
static final int ACTION_SET_SIGNALMAST_LIT
static final int ACTION_SET_BLOCK_ERROR
static final int ACTION_CLEAR_BLOCK_ERROR
static final int ACTION_DEALLOCATE_BLOCK
static final int ACTION_SET_BLOCK_OUT_OF_SERVICE
static final int ACTION_SET_BLOCK_IN_SERVICE
static final int ACTION_MANUAL_RUN_WARRANT
static final int ACTION_SET_TRAIN_NAME
static final int ACTION_SET_BLOCK_VALUE
static final int NUM_ACTION_TYPES
static final int ITEM_TYPE_SENSOR
static final int ITEM_TYPE_TURNOUT
static final int ITEM_TYPE_LIGHT
static final int ITEM_TYPE_SIGNALHEAD
static final int ITEM_TYPE_SIGNALMAST
static final int ITEM_TYPE_MEMORY
static final int ITEM_TYPE_CONDITIONAL
static final int ITEM_TYPE_LOGIX
static final int ITEM_TYPE_WARRANT
static final int ITEM_TYPE_CLOCK
static final int ITEM_TYPE_OBLOCK
static final int ITEM_TYPE_ENTRYEXIT
static final int ITEM_TYPE_LAST_STATE_VAR
static final int ITEM_TYPE_AUDIO
static final int ITEM_TYPE_SCRIPT
static final int ITEM_TYPE_OTHER
static final int ITEM_TYPE_LAST_ACTION
static final int[] TEST_TO_ITEM
static final int[] ITEM_TO_SIGNAL_HEAD_TEST
static final int[] ITEM_TO_SIGNAL_MAST_TEST
static final int[] ITEM_TO_SENSOR_TEST
static final int[] ITEM_TO_TURNOUT_TEST
static final int[] ITEM_TO_CONDITIONAL_TEST
static final int[] ITEM_TO_LIGHT_TEST
static final int[] ITEM_TO_WARRANT_TEST
static final int[] ITEM_TO_MEMORY_TEST
static final int[] ITEM_TO_OBLOCK_TEST
static final int[] ITEM_TO_ENTRYEXIT_TEST
static final int[] ACTION_TO_ITEM
static final int[] ITEM_TO_SENSOR_ACTION
static final int[] ITEM_TO_TURNOUT_ACTION
static final int[] ITEM_TO_MEMORY_ACTION
static final int[] ITEM_TO_LIGHT_ACTION
static final int[] ITEM_TO_CLOCK_ACTION
static final int[] ITEM_TO_LOGIX_ACTION
static final int[] ITEM_TO_WARRANT_ACTION
static final int[] ITEM_TO_OBLOCK_ACTION
static final int[] ITEM_TO_SIGNAL_HEAD_ACTION
static final int[] ITEM_TO_SIGNAL_MAST_ACTION
static final int[] ITEM_TO_AUDIO_ACTION
static final int[] ITEM_TO_SCRIPT_ACTION
static final int[] ITEM_TO_OTHER_ACTION
| Method Detail |
|---|
void setLogicType(int type,
String antecedent)
String getAntecedentExpression()
int getLogicType()
boolean getTriggerOnChange()
void setTriggerOnChange(boolean trigger)
trigger - true execute only on change of statevoid setAction(ArrayList<ConditionalAction> arrayList)
ArrayList<ConditionalAction> getCopyOfActions()
void setStateVariables(ArrayList<ConditionalVariable> arrayList)
This method assumes that all information has been validated.
ArrayList<ConditionalVariable> getCopyOfStateVariables()
int calculate(boolean enabled,
PropertyChangeEvent evt)
String validateAntecedent(String ant,
ArrayList<ConditionalVariable> variableList)
void cancelSensorTimer(String sname)
void cancelTurnoutTimer(String sname)
int getState()
getState in interface NamedBeanvoid addPropertyChangeListener(PropertyChangeListener l)
addPropertyChangeListener in interface NamedBeanvoid removePropertyChangeListener(PropertyChangeListener l)
removePropertyChangeListener in interface NamedBeanvoid dispose()
dispose in interface NamedBean
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||