com.espertech.esper.epl.variable.OnSetVariableViewFactory 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 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.epl.variable;
import com.espertech.esper.client.EventType;
import com.espertech.esper.core.service.StatementResultService;
import com.espertech.esper.epl.expression.core.ExprEvaluatorContext;
import com.espertech.esper.epl.expression.core.ExprValidationException;
import com.espertech.esper.epl.spec.OnTriggerSetDesc;
import com.espertech.esper.event.EventAdapterService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A factory for a view that handles the setting of variables upon receipt of a triggering event.
*/
public class OnSetVariableViewFactory {
private static final Logger log = LoggerFactory.getLogger(OnSetVariableViewFactory.class);
private final EventAdapterService eventAdapterService;
private final VariableService variableService;
private final EventType eventType;
private VariableReadWritePackage variableReadWritePackage;
private final StatementResultService statementResultService;
/**
* Ctor.
*
* @param desc specification for the on-set statement
* @param eventAdapterService for creating statements
* @param variableService for setting variables
* @param statementResultService for coordinating on whether insert and remove stream events should be posted
* @param exprEvaluatorContext context for expression evalauation
* @param statementId statement id
* @throws com.espertech.esper.epl.expression.core.ExprValidationException if the assignment expressions are invalid
*/
public OnSetVariableViewFactory(int statementId, OnTriggerSetDesc desc, EventAdapterService eventAdapterService, VariableService variableService, StatementResultService statementResultService, ExprEvaluatorContext exprEvaluatorContext)
throws ExprValidationException {
this.eventAdapterService = eventAdapterService;
this.variableService = variableService;
this.statementResultService = statementResultService;
variableReadWritePackage = new VariableReadWritePackage(desc.getAssignments(), variableService, eventAdapterService);
String outputEventTypeName = statementId + "_outsetvar";
eventType = eventAdapterService.createAnonymousMapType(outputEventTypeName, variableReadWritePackage.getVariableTypes(), true);
}
public OnSetVariableView instantiate(ExprEvaluatorContext exprEvaluatorContext) {
return new OnSetVariableView(this, exprEvaluatorContext);
}
public EventType getEventType() {
return eventType;
}
public EventAdapterService getEventAdapterService() {
return eventAdapterService;
}
public VariableService getVariableService() {
return variableService;
}
public VariableReadWritePackage getVariableReadWritePackage() {
return variableReadWritePackage;
}
public StatementResultService getStatementResultService() {
return statementResultService;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy