/* *************************************************************************************** * 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.core.context.factory; import com.espertech.esper.core.context.activator.ViewableActivator; import com.espertech.esper.core.context.subselect.SubSelectStrategyCollection; import com.espertech.esper.core.context.util.AgentInstanceContext; import com.espertech.esper.core.service.EPServicesContext; import com.espertech.esper.core.service.StatementContext; import com.espertech.esper.epl.core.ResultSetProcessor; import com.espertech.esper.epl.core.ResultSetProcessorFactoryDesc; import com.espertech.esper.epl.spec.StatementSpecCompiled; import com.espertech.esper.epl.variable.OnSetVariableView; import com.espertech.esper.epl.variable.OnSetVariableViewFactory; import com.espertech.esper.epl.view.OutputProcessViewFactory; import com.espertech.esper.util.StopCallback; import com.espertech.esper.view.View; import java.util.List; public class StatementAgentInstanceFactoryOnTriggerSetVariable extends StatementAgentInstanceFactoryOnTriggerBase { private final OnSetVariableViewFactory onSetVariableViewFactory; private final ResultSetProcessorFactoryDesc outputResultSetProcessorPrototype; private final OutputProcessViewFactory outputProcessViewFactory; public StatementAgentInstanceFactoryOnTriggerSetVariable(StatementContext statementContext, StatementSpecCompiled statementSpec, EPServicesContext services, ViewableActivator activator, SubSelectStrategyCollection subSelectStrategyCollection, OnSetVariableViewFactory onSetVariableViewFactory, ResultSetProcessorFactoryDesc outputResultSetProcessorPrototype, OutputProcessViewFactory outputProcessViewFactory) { super(statementContext, statementSpec, services, activator, subSelectStrategyCollection); this.onSetVariableViewFactory = onSetVariableViewFactory; this.outputResultSetProcessorPrototype = outputResultSetProcessorPrototype; this.outputProcessViewFactory = outputProcessViewFactory; } public OnExprViewResult determineOnExprView(AgentInstanceContext agentInstanceContext, List<StopCallback> stopCallbacks, boolean isRecoveringReslient) { OnSetVariableView view = onSetVariableViewFactory.instantiate(agentInstanceContext); return new OnExprViewResult(view, null); } public View determineFinalOutputView(AgentInstanceContext agentInstanceContext, View onExprView) { ResultSetProcessor outputResultSetProcessor = outputResultSetProcessorPrototype.getResultSetProcessorFactory().instantiate(null, null, agentInstanceContext); View outputView = outputProcessViewFactory.makeView(outputResultSetProcessor, agentInstanceContext); onExprView.addView(outputView); return outputView; } }