com.espertech.esper.epl.expression.time
Class ExprTimePeriodImpl

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

public class ExprTimePeriodImpl
extends ExprNodeBase
implements ExprTimePeriod, ExprEvaluator

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
 ExprTimePeriodEvalDeltaConst constEvaluator(ExprEvaluatorContext context)
           
 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 context)
          Evaluate event tuple and return result.
 double evaluateAsSeconds(EventBean[] eventsPerStream, boolean newData, ExprEvaluatorContext context)
           
 TimePeriod evaluateGetTimePeriod(EventBean[] eventsPerStream, boolean newData, ExprEvaluatorContext context)
           
protected  ExprTimePeriodImpl.TimePeriodAdder[] getAdders()
           
 ExprEvaluator[] getEvaluators()
           
 ExprEvaluator getExprEvaluator()
           
 ExprPrecedenceEnum getPrecedence()
          Returns precedence.
 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.
 ExprTimePeriodEvalDeltaNonConst nonconstEvaluator()
           
 void toPrecedenceFreeEPL(java.io.StringWriter writer)
           
 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, toString, 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

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

constEvaluator

public ExprTimePeriodEvalDeltaConst constEvaluator(ExprEvaluatorContext context)
Specified by:
constEvaluator in interface ExprTimePeriod

nonconstEvaluator

public ExprTimePeriodEvalDeltaNonConst nonconstEvaluator()
Specified by:
nonconstEvaluator in interface ExprTimePeriod

getExprEvaluator

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

evaluate

public java.lang.Object evaluate(EventBean[] eventsPerStream,
                                 boolean isNewData,
                                 ExprEvaluatorContext context)
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)
context - context for expression evaluation
Returns:
evaluation result, a boolean value for OR/AND-type evalution nodes.

getAdders

protected ExprTimePeriodImpl.TimePeriodAdder[] getAdders()

getEvaluators

public ExprEvaluator[] getEvaluators()

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 ExprNode validate(ExprValidationContext validationContext)
                  throws ExprValidationException
Specified by:
validate in interface ExprValidator
Throws:
ExprValidationException

evaluateAsSeconds

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

evaluateGetTimePeriod

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

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
Specified by:
isConstantResult in interface ExprTimePeriod
Returns:
true for constant evaluation value, false for non-constant evaluation value

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

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