com.espertech.esper.view.window
Class ExpressionBatchView

java.lang.Object
  extended by com.espertech.esper.view.ViewSupport
      extended by com.espertech.esper.view.window.ExpressionViewBase
          extended by com.espertech.esper.view.window.ExpressionBatchView
All Implemented Interfaces:
VariableChangeCallback, StopCallback, CloneableView, DataWindowView, EventCollection, GroupableView, StoppableView, View, Viewable, ViewDataVisitable, java.lang.Iterable<EventBean>

public class ExpressionBatchView
extends ExpressionViewBase

This view is a moving window extending the into the past until the expression passed to it returns false.


Field Summary
protected  EventBean[] lastBatch
           
protected  EventBean newestEvent
           
protected  long newestEventTimestamp
           
protected  EventBean oldestEvent
           
protected  long oldestEventTimestamp
           
protected  java.util.Set<EventBean> window
           
 
Fields inherited from class com.espertech.esper.view.window.ExpressionViewBase
agentInstanceContext, aggregateNodes, aggregationService, builtinEventProps, eventsPerStream, expiryExpression, scheduleHandle, scheduleSlot, variableNames, viewUpdatedCollection
 
Fields inherited from class com.espertech.esper.view.ViewSupport
EMPTY_VIEW_ARRAY, parent
 
Constructor Summary
ExpressionBatchView(ExpressionBatchViewFactory dataWindowViewFactory, ViewUpdatedCollection viewUpdatedCollection, ExprEvaluator expiryExpression, AggregationServiceFactoryDesc aggregationServiceFactoryDesc, ObjectArrayEventBean builtinEventProps, java.util.Set<java.lang.String> variableNames, AgentInstanceViewFactoryChainContext agentInstanceContext)
          Constructor creates a moving window extending the specified number of elements into the past.
 
Method Summary
 View cloneView()
          Duplicates the view.
 void expire(int numEventsInBatch)
           
 ViewFactory getViewFactory()
           
 java.lang.String getViewName()
           
 boolean isEmpty()
          Returns true if the window is empty, or false if not empty.
 java.util.Iterator<EventBean> iterator()
          Allows iteration through all elements in this event collection.
 void scheduleCallback()
          Implemented to check the expiry expression.
 void update(EventBean[] newData, EventBean[] oldData)
          Notify that data has been added or removed from the Viewable parent.
 void update(java.lang.Object newValue, java.lang.Object oldValue)
          Indicate a change in variable value.
 void visitView(ViewDataVisitor viewDataVisitor)
           
 
Methods inherited from class com.espertech.esper.view.window.ExpressionViewBase
getAggregationService, getEventType, getViewUpdatedCollection, stop, stopScheduleAndVar, stopView, toString
 
Methods inherited from class com.espertech.esper.view.ViewSupport
addView, addView, dumpChildViews, dumpUpdateParams, dumpUpdateParams, findDescendent, findViewIndex, getParent, getViews, hasViews, removeAllViews, removeView, removeView, setParent, updateChildren, updateChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.espertech.esper.view.View
getParent, setParent
 
Methods inherited from interface com.espertech.esper.view.Viewable
addView, getViews, hasViews, removeAllViews, removeView
 

Field Detail

window

protected final java.util.Set<EventBean> window

lastBatch

protected EventBean[] lastBatch

newestEventTimestamp

protected long newestEventTimestamp

oldestEventTimestamp

protected long oldestEventTimestamp

oldestEvent

protected EventBean oldestEvent

newestEvent

protected EventBean newestEvent
Constructor Detail

ExpressionBatchView

public ExpressionBatchView(ExpressionBatchViewFactory dataWindowViewFactory,
                           ViewUpdatedCollection viewUpdatedCollection,
                           ExprEvaluator expiryExpression,
                           AggregationServiceFactoryDesc aggregationServiceFactoryDesc,
                           ObjectArrayEventBean builtinEventProps,
                           java.util.Set<java.lang.String> variableNames,
                           AgentInstanceViewFactoryChainContext agentInstanceContext)
Constructor creates a moving window extending the specified number of elements into the past.

Parameters:
dataWindowViewFactory - for copying this view in a group-by
viewUpdatedCollection - is a collection that the view must update when receiving events
variableNames - variable names
Method Detail

getViewName

public java.lang.String getViewName()
Specified by:
getViewName in class ExpressionViewBase

cloneView

public View cloneView()
Description copied from interface: CloneableView
Duplicates the view.

Expected to return a same view in initialized state for grouping.


isEmpty

public boolean isEmpty()
Returns true if the window is empty, or false if not empty.

Returns:
true if empty

scheduleCallback

public void scheduleCallback()
Description copied from class: ExpressionViewBase
Implemented to check the expiry expression.

Specified by:
scheduleCallback in class ExpressionViewBase

update

public void update(EventBean[] newData,
                   EventBean[] oldData)
Description copied from interface: View
Notify that data has been added or removed from the Viewable parent. The last object in the newData array of objects would be the newest object added to the parent view. The first object of the oldData array of objects would be the oldest object removed from the parent view. If the call to update contains new (inserted) data, then the first argument will be a non-empty list and the second will be empty. Similarly, if the call is a notification of deleted data, then the first argument will be empty and the second will be non-empty. Either the newData or oldData will be non-null. This method won't be called with both arguments being null, but either one could be null. The same is true for zero-length arrays. Either newData or oldData will be non-empty. If both are non-empty, then the update is a modification notification. When update() is called on a view by the parent object, the data in newData will be in the collection of the parent, and its data structures will be arranged to reflect that. The data in oldData will not be in the parent's data structures, and any access to the parent will indicate that that data is no longer there.

Parameters:
newData - is the new data that has been added to the parent view
oldData - is the old data that has been removed from the parent view

expire

public void expire(int numEventsInBatch)

visitView

public void visitView(ViewDataVisitor viewDataVisitor)

iterator

public final java.util.Iterator<EventBean> iterator()
Description copied from interface: EventCollection
Allows iteration through all elements in this event collection. The iterator will return the elements in the collection in their natural order, or, if there is no natural ordering, in some unpredictable order.

Returns:
an iterator which will go through all current elements in the collection.

update

public void update(java.lang.Object newValue,
                   java.lang.Object oldValue)
Description copied from interface: VariableChangeCallback
Indicate a change in variable value.

Specified by:
update in interface VariableChangeCallback
Overrides:
update in class ExpressionViewBase
Parameters:
newValue - new value
oldValue - old value

getViewFactory

public ViewFactory getViewFactory()

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