com.espertech.esper.core.service.InternalEventRouterEntry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of esper Show documentation
Show all versions of esper Show documentation
Complex event processing and event series analysis component
/*
* *************************************************************************************
* Copyright (C) 2006-2015 EsperTech, Inc. All rights reserved. *
* http://www.espertech.com/esper *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
* *************************************************************************************
*/
package com.espertech.esper.core.service;
import com.espertech.esper.epl.expression.core.ExprEvaluator;
import com.espertech.esper.epl.expression.core.ExprNode;
import com.espertech.esper.epl.expression.core.ExprNodeUtility;
import com.espertech.esper.event.EventBeanWriter;
import com.espertech.esper.util.TypeWidener;
/**
* Pre-Processing entry for routing an event internally.
*/
public class InternalEventRouterEntry
{
private final int priority;
private final boolean isDrop;
private final ExprEvaluator optionalWhereClause;
private final ExprEvaluator[] assignments;
private final EventBeanWriter writer;
private final TypeWidener[] wideners;
private final InternalRoutePreprocessView outputView;
private final StatementAgentInstanceLock agentInstanceLock;
private final boolean hasSubselect;
/**
* Ctor.
* @param priority priority of statement
* @param drop whether to drop the event if matched
* @param optionalWhereClause where clause, or null if none provided
* @param assignments event property assignments
* @param writer writes values to an event
* @param wideners for widening types to write
* @param outputView for indicating output
* @param agentInstanceLock
*/
public InternalEventRouterEntry(int priority, boolean drop, ExprNode optionalWhereClause, ExprNode[] assignments, EventBeanWriter writer, TypeWidener[] wideners, InternalRoutePreprocessView outputView, StatementAgentInstanceLock agentInstanceLock, boolean hasSubselect)
{
this.priority = priority;
this.isDrop = drop;
this.optionalWhereClause = optionalWhereClause == null ? null : optionalWhereClause.getExprEvaluator();
this.assignments = ExprNodeUtility.getEvaluators(assignments);
this.writer = writer;
this.wideners = wideners;
this.outputView = outputView;
this.agentInstanceLock = agentInstanceLock;
this.hasSubselect = hasSubselect;
}
/**
* Returns the execution priority.
* @return priority
*/
public int getPriority()
{
return priority;
}
/**
* Returns indicator whether dropping events if the where-clause matches.
* @return drop events
*/
public boolean isDrop()
{
return isDrop;
}
/**
* Returns the where-clause or null if none defined
* @return where-clause
*/
public ExprEvaluator getOptionalWhereClause()
{
return optionalWhereClause;
}
/**
* Returns the expressions providing values for assignment.
* @return assignment expressions
*/
public ExprEvaluator[] getAssignments()
{
return assignments;
}
/**
* Returns the writer to the event for writing property values.
* @return writer
*/
public EventBeanWriter getWriter()
{
return writer;
}
/**
* Returns the type wideners to use or null if none required.
* @return wideners.
*/
public TypeWidener[] getWideners()
{
return wideners;
}
/**
* Returns the output view.
* @return output view
*/
public InternalRoutePreprocessView getOutputView() {
return outputView;
}
public StatementAgentInstanceLock getAgentInstanceLock() {
return agentInstanceLock;
}
public boolean isHasSubselect() {
return hasSubselect;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy