public class ExprIdentNodeImpl extends ExprNodeBase implements ExprIdentNode, ExprNode, ExprForge
Constructor and Description |
---|
ExprIdentNodeImpl(EventType eventType,
String propertyName,
int streamNumber) |
ExprIdentNodeImpl(String unresolvedPropertyName)
Ctor.
|
ExprIdentNodeImpl(String unresolvedPropertyName,
String streamOrPropertyName)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equalsNode(ExprNode node,
boolean ignoreStreamPrefix)
Return true if a expression node semantically equals the current node, or false if not.
|
CodegenExpression |
evaluateCodegen(CodegenParamSetExprPremade params,
CodegenContext context) |
ExprForgeComplexityEnum |
getComplexity() |
Class |
getEvaluationType() |
ExprEvaluator |
getExprEvaluator() |
ExprIdentNodeEvaluator |
getExprEvaluatorIdent() |
FilterSpecLookupable |
getFilterLookupable() |
boolean |
getFilterLookupEligible() |
ExprForge |
getForge() |
ExprNodeRenderable |
getForgeRenderable() |
String |
getFullUnresolvedName()
Returns the unresolved property name in it's complete form, including
the stream name if there is one.
|
ExprPrecedenceEnum |
getPrecedence()
Returns precedence.
|
String |
getResolvedPropertyName()
Return property name as resolved by lookup in streams.
|
String |
getResolvedPropertyNameRoot()
Returns the root of the resolved property name, if any.
|
String |
getResolvedStreamName()
Returns stream name as resolved by lookup of property in streams.
|
String |
getRootPropertyNameIfAny() |
int |
getStreamId()
Returns stream id supplying the property value.
|
String |
getStreamOrPropertyName()
For unit testing, returns stream or property name candidate.
|
Integer |
getStreamReferencedIfAny() |
Class |
getType() |
String |
getUnresolvedPropertyName()
For unit testing, returns unresolved property name.
|
boolean |
isConstantResult()
Returns true if the expression node's evaluation value doesn't depend on any events data,
as must be determined at validation time, which is bottom-up and therefore
reliably allows each node to determine constant value.
|
void |
setStreamOrPropertyName(String streamOrPropertyName)
Set name.
|
void |
toPrecedenceFreeEPL(StringWriter writer) |
static void |
toPrecedenceFreeEPL(StringWriter writer,
String streamOrPropertyName,
String unresolvedPropertyName) |
String |
toString() |
ExprNode |
validate(ExprValidationContext validationContext) |
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
accept, accept, acceptChildnodes, addChildNode, addChildNodes, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes
toEPL
public ExprIdentNodeImpl(String unresolvedPropertyName)
unresolvedPropertyName
- is the event property name in unresolved form, ie. unvalidated against streamspublic ExprIdentNodeImpl(String unresolvedPropertyName, String streamOrPropertyName)
unresolvedPropertyName
- is the event property name in unresolved form, ie. unvalidated against streamsstreamOrPropertyName
- is the stream name, or if not a valid stream name a possible nested property name
in one of the streams.public ExprNodeRenderable getForgeRenderable()
getForgeRenderable
in interface ExprForge
public Class getEvaluationType()
getEvaluationType
in interface ExprForge
public CodegenExpression evaluateCodegen(CodegenParamSetExprPremade params, CodegenContext context)
evaluateCodegen
in interface ExprForge
public ExprForgeComplexityEnum getComplexity()
getComplexity
in interface ExprForge
public ExprEvaluator getExprEvaluator()
getExprEvaluator
in interface ExprForge
public String getUnresolvedPropertyName()
getUnresolvedPropertyName
in interface ExprIdentNode
public String getStreamOrPropertyName()
getStreamOrPropertyName
in interface ExprIdentNode
public void setStreamOrPropertyName(String streamOrPropertyName)
setStreamOrPropertyName
in interface ExprIdentNode
streamOrPropertyName
- to usepublic String getFullUnresolvedName()
getFullUnresolvedName
in interface ExprIdentNode
public boolean getFilterLookupEligible()
getFilterLookupEligible
in interface ExprFilterOptimizableNode
public FilterSpecLookupable getFilterLookupable()
getFilterLookupable
in interface ExprFilterOptimizableNode
public ExprNode validate(ExprValidationContext validationContext) throws ExprValidationException
validate
in interface ExprValidator
ExprValidationException
public boolean isConstantResult()
ExprNode
isConstantResult
in interface ExprNode
public int getStreamId()
getStreamId
in interface ExprIdentNode
public Integer getStreamReferencedIfAny()
getStreamReferencedIfAny
in interface ExprStreamRefNode
public String getRootPropertyNameIfAny()
getRootPropertyNameIfAny
in interface ExprStreamRefNode
public Class getType()
public String getResolvedStreamName()
getResolvedStreamName
in interface ExprIdentNode
public String getResolvedPropertyName()
getResolvedPropertyName
in interface ExprIdentNode
public String getResolvedPropertyNameRoot()
getResolvedPropertyNameRoot
in interface ExprIdentNode
public void toPrecedenceFreeEPL(StringWriter writer)
toPrecedenceFreeEPL
in class ExprNodeBase
public static void toPrecedenceFreeEPL(StringWriter writer, String streamOrPropertyName, String unresolvedPropertyName)
public ExprPrecedenceEnum getPrecedence()
ExprNode
getPrecedence
in interface ExprNode
public boolean equalsNode(ExprNode node, boolean ignoreStreamPrefix)
ExprNode
Concrete implementations should compare the type and any additional information that impact the evaluation of a node.
equalsNode
in interface ExprNode
node
- to compare toignoreStreamPrefix
- when the equals-comparison can ignore prefix of event propertiespublic ExprIdentNodeEvaluator getExprEvaluatorIdent()
getExprEvaluatorIdent
in interface ExprIdentNode