com.espertech.esper.epl.expression.core
Class ExprStreamUnderlyingNodeImpl

java.lang.Object
  extended by com.espertech.esper.epl.expression.core.ExprNodeBase
      extended by com.espertech.esper.epl.expression.core.ExprStreamUnderlyingNodeImpl
All Implemented Interfaces:
ExprEvaluator, ExprNode, ExprStreamRefNode, ExprStreamUnderlyingNode, ExprValidator, MetaDefItem, java.io.Serializable

public class ExprStreamUnderlyingNodeImpl
extends ExprNodeBase
implements ExprEvaluator, ExprStreamUnderlyingNode

Represents an stream selector that returns the streams underlying event, or null if undefined.

See Also:
Serialized Form

Constructor Summary
ExprStreamUnderlyingNodeImpl(java.lang.String streamName, boolean isWildcard)
          Ctor.
 
Method Summary
 boolean equalsNode(ExprNode node)
          Return true if a expression node semantically equals the current node, or false if not.
 java.lang.Object evaluate(EventBean[] eventsPerStream, boolean isNewData, ExprEvaluatorContext exprEvaluatorContext)
          Evaluate event tuple and return result.
 EventType getEventType()
           
 ExprEvaluator getExprEvaluator()
           
 ExprPrecedenceEnum getPrecedence()
          Returns precedence.
 java.lang.String getRootPropertyNameIfAny()
           
 int getStreamId()
          Returns stream id supplying the property value.
 java.lang.String getStreamName()
          Returns the stream name.
 java.lang.Integer getStreamReferencedIfAny()
           
 java.lang.Class getType()
          Returns the type that the node's evaluate method returns an instance of.
 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 toPrecedenceFreeEPL(java.io.StringWriter writer)
           
 java.lang.String toString()
           
 ExprNode validate(ExprValidationContext validationContext)
           
 
Methods inherited from class com.espertech.esper.epl.expression.core.ExprNodeBase
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.espertech.esper.epl.expression.core.ExprNode
accept, accept, acceptChildnodes, addChildNode, addChildNodes, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes, toEPL
 

Constructor Detail

ExprStreamUnderlyingNodeImpl

public ExprStreamUnderlyingNodeImpl(java.lang.String streamName,
                                    boolean isWildcard)
Ctor.

Parameters:
streamName - is the name of the stream for which to return the underlying event
Method Detail

getExprEvaluator

public ExprEvaluator getExprEvaluator()
Specified by:
getExprEvaluator in interface ExprNode

getStreamName

public java.lang.String getStreamName()
Returns the stream name.

Returns:
stream name

getStreamReferencedIfAny

public java.lang.Integer getStreamReferencedIfAny()
Specified by:
getStreamReferencedIfAny in interface ExprStreamRefNode

getRootPropertyNameIfAny

public java.lang.String getRootPropertyNameIfAny()
Specified by:
getRootPropertyNameIfAny in interface ExprStreamRefNode

validate

public ExprNode validate(ExprValidationContext validationContext)
                  throws ExprValidationException
Specified by:
validate in interface ExprValidator
Throws:
ExprValidationException

getType

public java.lang.Class getType()
Description copied from interface: ExprEvaluator
Returns the type that the node's evaluate method returns an instance of.

Specified by:
getType in interface ExprEvaluator
Returns:
type returned when evaluated

isConstantResult

public boolean isConstantResult()
Description copied from interface: ExprNode
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.

Specified by:
isConstantResult in interface ExprNode
Returns:
true for constant evaluation value, false for non-constant evaluation value

getStreamId

public int getStreamId()
Returns stream id supplying the property value.

Specified by:
getStreamId in interface ExprStreamUnderlyingNode
Returns:
stream number

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

evaluate

public java.lang.Object evaluate(EventBean[] eventsPerStream,
                                 boolean isNewData,
                                 ExprEvaluatorContext exprEvaluatorContext)
Description copied from interface: ExprEvaluator
Evaluate event tuple and return result.

Specified by:
evaluate in interface ExprEvaluator
Parameters:
eventsPerStream - - event tuple
isNewData - - indicates whether we are dealing with new data (istream) or old data (rstream)
exprEvaluatorContext - context for expression evaluation
Returns:
evaluation result, a boolean value for OR/AND-type evalution nodes.

toPrecedenceFreeEPL

public void toPrecedenceFreeEPL(java.io.StringWriter writer)
Specified by:
toPrecedenceFreeEPL in class ExprNodeBase

getPrecedence

public ExprPrecedenceEnum getPrecedence()
Description copied from interface: ExprNode
Returns precedence.

Specified by:
getPrecedence in interface ExprNode
Returns:
precedence

getEventType

public EventType getEventType()
Specified by:
getEventType in interface ExprStreamUnderlyingNode

equalsNode

public boolean equalsNode(ExprNode node)
Description copied from interface: ExprNode
Return true if a expression node semantically equals the current node, or false if not.

Concrete implementations should compare the type and any additional information that impact the evaluation of a node.

Specified by:
equalsNode in interface ExprNode
Parameters:
node - to compare to
Returns:
true if semantically equal, or false if not equals

© 2006-2015 EsperTech Inc.
All rights reserved.
Visit us at espertech.com