/*
***************************************************************************************
* 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.view;
import com.espertech.esper.client.ConfigurationInformation;
import com.espertech.esper.core.service.StatementContext;
import com.espertech.esper.epl.core.EngineImportService;
import com.espertech.esper.epl.core.StreamTypeService;
import com.espertech.esper.epl.expression.core.ExprEvaluatorContext;
import com.espertech.esper.epl.expression.core.ExprNode;
import com.espertech.esper.epl.expression.core.ExprValidationException;
import com.espertech.esper.epl.table.mgmt.TableService;
import com.espertech.esper.epl.variable.VariableService;
import com.espertech.esper.event.EventAdapterService;
import com.espertech.esper.schedule.SchedulingService;
import com.espertech.esper.schedule.TimeProvider;
import java.util.List;
import java.util.Map;
/**
* Interface for views that require validation against stream event types.
*/
public interface ValidatedView {
/**
* Validate the view.
*
* @param streamTypeService supplies the types of streams against which to validate
* @param timeProvider for providing current time
* @param variableService for access to variables
* @param exprEvaluatorContext context for expression evaluation
* @param statementContext statement context
* @param eventAdapterService event type info
* @param engineURI engine URI
* @param sqlParameters parameters
* @param schedulingService scheduling
* @param tableService tables
* @param engineImportService engine imports
* @param configSnapshot configuration
* @throws ExprValidationException is thrown to indicate an exception in validating the view
*/
public void validate(EngineImportService engineImportService,
StreamTypeService streamTypeService,
TimeProvider timeProvider,
VariableService variableService,
TableService tableService,
ExprEvaluatorContext exprEvaluatorContext,
ConfigurationInformation configSnapshot,
SchedulingService schedulingService,
String engineURI,
Map<Integer, List<ExprNode>> sqlParameters,
EventAdapterService eventAdapterService,
StatementContext statementContext) throws ExprValidationException;
}