|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.view.ViewSupport
com.espertech.esper.view.std.UniqueByPropertyView
public class UniqueByPropertyView
This view includes only the most recent among events having the same value for the specified field or fields. The view accepts the field name as parameter from which the unique values are obtained. For example, a trade's symbol could be used as a unique value. In this example, the first trade for symbol IBM would be posted as new data to child views. When the second trade for symbol IBM arrives the second trade is posted as new data to child views, and the first trade is posted as old data. Should more than one trades for symbol IBM arrive at the same time (like when batched) then the child view will get all new events in newData and all new events in oldData minus the most recent event. When the current new event arrives as old data, the the current unique event gets thrown away and posted as old data to child views. Iteration through the views data shows only the most recent events received for the unique value in the order that events arrived in. The type of the field returning the unique value can be any type but should override equals and hashCode() as the type plays the role of a key in a map storing unique values.
Field Summary | |
---|---|
protected AgentInstanceViewFactoryChainContext |
agentInstanceViewFactoryContext
|
protected ExprEvaluator[] |
criteriaExpressionsEvals
|
protected java.util.Map<java.lang.Object,EventBean> |
mostRecentEvents
|
Fields inherited from class com.espertech.esper.view.ViewSupport |
---|
EMPTY_VIEW_ARRAY, parent |
Constructor Summary | |
---|---|
UniqueByPropertyView(UniqueByPropertyViewFactory viewFactory,
AgentInstanceViewFactoryChainContext agentInstanceViewFactoryContext)
Constructor. |
Method Summary | |
---|---|
View |
cloneView()
Duplicates the view. |
ExprNode[] |
getCriteriaExpressions()
Returns the name of the field supplying the unique value to keep the most recent record for. |
EventType |
getEventType()
Provides metadata information about the type of object the event collection contains. |
protected java.lang.Object |
getUniqueKey(EventBean theEvent)
|
ViewFactory |
getViewFactory()
|
boolean |
isEmpty()
Returns true if the view is empty. |
java.util.Iterator<EventBean> |
iterator()
Allows iteration through all elements in this event collection. |
java.lang.String |
toString()
|
void |
update(EventBean[] newData,
EventBean[] oldData)
Notify that data has been added or removed from the Viewable parent. |
void |
visitView(ViewDataVisitor viewDataVisitor)
|
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 |
---|
protected final ExprEvaluator[] criteriaExpressionsEvals
protected final java.util.Map<java.lang.Object,EventBean> mostRecentEvents
protected final AgentInstanceViewFactoryChainContext agentInstanceViewFactoryContext
Constructor Detail |
---|
public UniqueByPropertyView(UniqueByPropertyViewFactory viewFactory, AgentInstanceViewFactoryChainContext agentInstanceViewFactoryContext)
agentInstanceViewFactoryContext
- context for expression evaluationMethod Detail |
---|
public View cloneView()
CloneableView
Expected to return a same view in initialized state for grouping.
cloneView
in interface CloneableView
public final ExprNode[] getCriteriaExpressions()
public final EventType getEventType()
EventCollection
getEventType
in interface EventCollection
public final void update(EventBean[] newData, EventBean[] oldData)
View
update
in interface View
newData
- is the new data that has been added to the parent viewoldData
- is the old data that has been removed from the parent viewpublic boolean isEmpty()
public final java.util.Iterator<EventBean> iterator()
EventCollection
iterator
in interface EventCollection
iterator
in interface java.lang.Iterable<EventBean>
public final java.lang.String toString()
toString
in class java.lang.Object
protected java.lang.Object getUniqueKey(EventBean theEvent)
public void visitView(ViewDataVisitor viewDataVisitor)
visitView
in interface ViewDataVisitable
public ViewFactory getViewFactory()
getViewFactory
in interface GroupableView
|
© 2006-2015 EsperTech Inc. All rights reserved. Visit us at espertech.com |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |