public class LengthBatchView extends ViewSupport implements DataWindowView
The view works similar to a length_window but is not continuous, and similar to a time_batch however is not time-based but reacts to the number of events.
The view releases the batched events, when a certain number of batched events has been reached or exceeded, as new data to child views. The prior batch if not empty is released as old data to any child views. The view doesn't release intervals with no old or new data. It also does not collect old data published by a parent view.
If there are no events in the current and prior batch, the view will not invoke the update method of child views.
Modifier and Type | Field and Description |
---|---|
protected AgentInstanceContext |
agentInstanceContext |
protected ArrayDeque<EventBean> |
currentBatch |
protected ArrayDeque<EventBean> |
lastBatch |
child, parent
Constructor and Description |
---|
LengthBatchView(AgentInstanceViewFactoryChainContext agentInstanceContext,
LengthBatchViewFactory lengthBatchViewFactory,
int size,
ViewUpdatedCollection viewUpdatedCollection)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
EventType |
getEventType()
Provides metadata information about the type of object the event collection contains.
|
int |
getSize()
Returns the number of events to batch (data window size).
|
ViewFactory |
getViewFactory() |
boolean |
isEmpty()
Returns true if the window is empty, or false if not empty.
|
Iterator<EventBean> |
iterator()
Allows iteration through all elements in this viewable.
|
protected void |
sendBatch()
This method updates child views and clears the batch of events.
|
String |
toString() |
void |
update(EventBean[] newData,
EventBean[] oldData)
Notify that data has been added or removed from the Viewable parent.
|
void |
visitView(ViewDataVisitor viewDataVisitor) |
getChild, getParent, setChild, setParent
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getParent, setParent
getChild, setChild
forEach, spliterator
protected final AgentInstanceContext agentInstanceContext
protected ArrayDeque<EventBean> lastBatch
protected ArrayDeque<EventBean> currentBatch
public LengthBatchView(AgentInstanceViewFactoryChainContext agentInstanceContext, LengthBatchViewFactory lengthBatchViewFactory, int size, ViewUpdatedCollection viewUpdatedCollection)
size
- is the number of events to batchviewUpdatedCollection
- is a collection that the view must update when receiving eventslengthBatchViewFactory
- for copying this view in a group-byagentInstanceContext
- contextpublic final int getSize()
public final EventType getEventType()
Viewable
getEventType
in interface Viewable
public void update(EventBean[] newData, EventBean[] oldData)
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.
protected void sendBatch()
public boolean isEmpty()
public final Iterator<EventBean> iterator()
Viewable
public void visitView(ViewDataVisitor viewDataVisitor)
visitView
in interface ViewDataVisitable
public ViewFactory getViewFactory()
Copyright © 2005–2018. All rights reserved.