com.espertech.esper.epl.expression
Class ExprTimePeriodImpl

java.lang.Object
  extended by com.espertech.esper.epl.expression.ExprNodeBase
      extended by com.espertech.esper.epl.expression.ExprTimePeriodImpl
All Implemented Interfaces:
ExprEvaluator, ExprNode, ExprTimePeriod, ExprValidator, MetaDefItem, java.io.Serializable

public class ExprTimePeriodImpl
extends ExprNodeBase
implements ExprEvaluator, ExprTimePeriod

Expression representing a time period.

Child nodes to this expression carry the actual parts and must return a numeric value.

See Also:
Serialized Form

Nested Class Summary
static interface ExprTimePeriodImpl.TimePeriodAdder
           
static class ExprTimePeriodImpl.TimePeriodAdderDay
           
static class ExprTimePeriodImpl.TimePeriodAdderHour
           
static class ExprTimePeriodImpl.TimePeriodAdderMinute
           
static class ExprTimePeriodImpl.TimePeriodAdderMonth
           
static class ExprTimePeriodImpl.TimePeriodAdderMSec
           
static class ExprTimePeriodImpl.TimePeriodAdderSecond
           
static class ExprTimePeriodImpl.TimePeriodAdderWeek
           
static class ExprTimePeriodImpl.TimePeriodAdderYear
           
 
Constructor Summary
ExprTimePeriodImpl(boolean hasYear, boolean hasMonth, boolean hasWeek, boolean hasDay, boolean hasHour, boolean hasMinute, boolean hasSecond, boolean hasMillisecond)
          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.
 TimePeriod evaluateGetTimePeriod(EventBean[] eventsPerStream, boolean newData, ExprEvaluatorContext context)
           
 java.util.Map<java.lang.String,java.lang.Object> getEventType()
           
 ExprEvaluator getExprEvaluator()
           
 java.lang.Class getType()
          Returns the type that the node's evaluate method returns an instance of.
 boolean hasVariable()
          Indicator whether the time period has a variable in any of the child expressions.
 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.
 boolean isHasDay()
          Indicator whether the time period has a day part child expression.
 boolean isHasHour()
          Indicator whether the time period has a hour part child expression.
 boolean isHasMillisecond()
          Indicator whether the time period has a millisecond part child expression.
 boolean isHasMinute()
          Indicator whether the time period has a minute part child expression.
 boolean isHasMonth()
          Indicator whether the time period has a month part child expression.
 boolean isHasSecond()
          Indicator whether the time period has a second part child expression.
 boolean isHasWeek()
          Indicator whether the time period has a week part child expression.
 boolean isHasYear()
          Indicator whether the time period has a year part child expression.
 java.lang.String toExpressionString()
          Returns the expression node rendered as a string.
 void validate(ExprValidationContext validationContext)
           
 
Methods inherited from class com.espertech.esper.epl.expression.ExprNodeBase
accept, accept, acceptChildnodes, addChildNode, addChildNodes, addChildNodeToFront, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.espertech.esper.epl.expression.ExprNode
accept, accept, acceptChildnodes, addChildNode, addChildNodes, getChildNodes, replaceUnlistedChildNode, setChildNode, setChildNodes
 

Constructor Detail

ExprTimePeriodImpl

public ExprTimePeriodImpl(boolean hasYear,
                          boolean hasMonth,
                          boolean hasWeek,
                          boolean hasDay,
                          boolean hasHour,
                          boolean hasMinute,
                          boolean hasSecond,
                          boolean hasMillisecond)
Ctor.

Parameters:
hasDay - true if the expression has that part, false if not
hasHour - true if the expression has that part, false if not
hasMinute - true if the expression has that part, false if not
hasSecond - true if the expression has that part, false if not
hasMillisecond - true if the expression has that part, false if not
Method Detail

getExprEvaluator

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

isHasDay

public boolean isHasDay()
Indicator whether the time period has a day part child expression.

Specified by:
isHasDay in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasHour

public boolean isHasHour()
Indicator whether the time period has a hour part child expression.

Specified by:
isHasHour in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasMinute

public boolean isHasMinute()
Indicator whether the time period has a minute part child expression.

Specified by:
isHasMinute in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasSecond

public boolean isHasSecond()
Indicator whether the time period has a second part child expression.

Specified by:
isHasSecond in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasMillisecond

public boolean isHasMillisecond()
Indicator whether the time period has a millisecond part child expression.

Specified by:
isHasMillisecond in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasYear

public boolean isHasYear()
Indicator whether the time period has a year part child expression.

Specified by:
isHasYear in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasMonth

public boolean isHasMonth()
Indicator whether the time period has a month part child expression.

Specified by:
isHasMonth in interface ExprTimePeriod
Returns:
true for part present, false for not present

isHasWeek

public boolean isHasWeek()
Indicator whether the time period has a week part child expression.

Specified by:
isHasWeek in interface ExprTimePeriod
Returns:
true for part present, false for not present

hasVariable

public boolean hasVariable()
Indicator whether the time period has a variable in any of the child expressions.

Specified by:
hasVariable in interface ExprTimePeriod
Returns:
true for variable present, false for not present

validate

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

getEventType

public java.util.Map<java.lang.String,java.lang.Object> getEventType()
Specified by:
getEventType in interface ExprEvaluator

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.

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

toExpressionString

public java.lang.String toExpressionString()
Description copied from interface: ExprNode
Returns the expression node rendered as a string.

Specified by:
toExpressionString in interface ExprNode
Returns:
string rendering of expression

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

evaluateGetTimePeriod

public TimePeriod evaluateGetTimePeriod(EventBean[] eventsPerStream,
                                        boolean newData,
                                        ExprEvaluatorContext context)
Specified by:
evaluateGetTimePeriod in interface ExprTimePeriod

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