public class ExpressionTag extends AbstractExecutableTag
Modifier and Type | Class and Description |
---|---|
protected class |
ExpressionTag.ELExecutor |
protected class |
ExpressionTag.Executor
Even though both are expressions, there's a big difference between how the query expression and ELExpression get
executed (w/ query, the expr returns the query, and we still need to run it).
|
protected class |
ExpressionTag.QueryExecutor |
protected class |
ExpressionTag.ReferenceCollectingParseContext
This context just parses and tracks referenced tag paths.
|
AbstractExecutableTag.AlarmConfigHarness, AbstractExecutableTag.ArrayAlarmEvaluator, AbstractExecutableTag.ArrayEvaluator<T>, AbstractExecutableTag.ArrayHistorizer, AbstractExecutableTag.CustomPermissions, AbstractExecutableTag.ExecTagHistoryEvaluator, AbstractExecutableTag.Historizer, AbstractExecutableTag.InternalTagScriptEvaluator, AbstractExecutableTag.ModifiedValueAsyncWriteRequest<T>, AbstractExecutableTag.ReadOnlyPermissions, AbstractExecutableTag.RWPermissions, AbstractExecutableTag.ScriptConfigHarness, AbstractExecutableTag.TagHistoryHarness, AbstractExecutableTag.TagPermissions
TagPropertyValue.HashKey
alarmEval, deadband, historizer, permissions, scaler, TAG_HISTORY_LOGGER
RUNTIME_PROPERTIES, tagChangeListener
Constructor and Description |
---|
ExpressionTag() |
Modifier and Type | Method and Description |
---|---|
void |
configure(Tag def)
Provides the tag with it's configuration so that it can set up anything it needs.
|
protected void |
configureExecutor() |
java.util.List<TagPath> |
getTagReferences() |
TagType |
getType()
Returns the type of this tag.
|
boolean |
hasHintPersistent() |
protected void |
internalEvaluate()
Executes the tag, updating the current value if necessary.
|
protected void |
internalUninitialize(TagUninitializeContext context) |
protected void |
internalWrite(TagWriteContext context,
AsyncWriteRequest<TagPath> value)
Passes value to subclass for evaluation, if supported.
|
boolean |
isWritable()
The expression tag allows writing, even though in general it doesn't make sense.
|
protected void |
registerBadTag(TagPath path)
Bad path stuff
An expression can reference other tags, and the references end up as BoundTagExpressions.
|
void |
resetEvaluation()
Resets the isEvaluated flag, along with the various value changed flags.
|
protected void |
setValue(TagValue value)
When setValue is called, we know the value has changed.
|
protected void |
unregisterBadTag(boolean tryAgain)
This function name is a tad misleading- it basically just means to try and re-create the executor.
|
alarmTransitioned, coerceAndCheck, evaluate, evaluateAlerts, evaluateHistory, fireEvent, getAccessRights, getAttribute, getContext, getDataType, getDataTypeClass, getHistoryPaths, getId, getName, getPermissionModel, getProperty, getRuntimeProperty, getScaler, getValue, hasHintConfig, initialize, internalPropertyWrite, internalUpdateCurrentValue, isAlarmingSupported, isEnabled, isEvaluated, isInitialized, sampleDiagnostics, setAttribute, setCurrentValue, setDataType, setIsEvaluated, setTagError, supportsCurrentValueUpdate, unInitialize, updateCurrentValue, updateRuntimeAlertProperties, updateRuntimePropertyValue, updateRuntimeQuality, write
compareTo, createTagChangeEvent, fireChangeEvent, fireChangeEvent, getAlarmStates, getConfigProvider, getEntityId, getEventScripts, getExecutor, getTagChangeListener, getTagLogger, getTagPath, setConfigProvider, setEntityId, setExecutor, setTagChangeListener, setTagPath
public void configure(Tag def)
AbstractExecutableTag
configure
in class AbstractExecutableTag
public TagType getType()
Tag
public boolean hasHintPersistent()
hasHintPersistent
in interface TagPropertyValue
hasHintPersistent
in class AbstractExecutableTag
protected void setValue(TagValue value)
setValue
in class AbstractExecutableTag
public void resetEvaluation()
AbstractExecutableTag
resetEvaluation
in interface ExecutableTag
resetEvaluation
in class AbstractExecutableTag
protected void internalUninitialize(TagUninitializeContext context)
internalUninitialize
in class AbstractExecutableTag
protected void configureExecutor() throws java.lang.Exception
java.lang.Exception
protected void registerBadTag(TagPath path)
protected void unregisterBadTag(boolean tryAgain)
tryAgain
- protected void internalEvaluate()
AbstractExecutableTag
internalEvaluate
in class AbstractExecutableTag
public boolean isWritable()
isWritable
in interface ExecutableTag
isWritable
in class AbstractExecutableTag
protected void internalWrite(TagWriteContext context, AsyncWriteRequest<TagPath> value)
AbstractExecutableTag
internalWrite
in class AbstractExecutableTag
public java.util.List<TagPath> getTagReferences() throws java.lang.Exception
java.lang.Exception