|
||||||||||
| 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. |
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. |
String |
validateAntecedent(String ant,
ArrayList<ConditionalVariable> variableList)
Check that an antecedent is well formed. |
| Methods inherited from interface jmri.NamedBean |
|---|
getComment, getNumPropertyChangeListeners, getSystemName, getUserName, setComment, setState, setUserName |
| 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 MAX_STATE_VARIABLES
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 NUM_STATE_VARIABLE_TYPES
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 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 NUM_ACTION_TYPES
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
| Method Detail |
|---|
void setLogicType(int type,
String antecedent)
String getAntecedentExpression()
int getLogicType()
void 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 | |||||||||