/**************************************************************************************
* Copyright (C) 2008 EsperTech, Inc. All rights reserved. *
* http://esper.codehaus.org *
* 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.spec.StatementSpecRaw;
import java.lang.annotation.Annotation;
import java.util.Map;
/**
* Interface for a factory class that makes statement context specific to a statement.
*/
public interface StatementContextFactory
{
public void setStmtEngineServices(EPServicesContext services);
/**
* Create a new statement context consisting of statement-level services.
* @param statementId is the statement is
* @param statementName is the statement name
* @param expression is the statement expression
* @param engineServices is engine services
* @param optAdditionalContext addtional context to pass to the statement
* @param isFireAndForget if the statement context is for a fire-and-forget statement
* @param annotations statement annotations
* @param isolationUnitServices for isolation units
* @return statement context
*/
public StatementContext makeContext(String statementId,
String statementName,
String expression,
EPServicesContext engineServices,
Map<String, Object> optAdditionalContext,
boolean isFireAndForget,
Annotation[] annotations,
EPIsolationUnitServices isolationUnitServices,
boolean stateless,
StatementSpecRaw statementSpecRaw);
}