/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.query;
import java.util.List;
import org.teiid.designer.query.metadata.IQueryMetadataInterface;
import org.teiid.designer.query.sql.lang.ICommand;
import org.teiid.designer.query.sql.lang.IExpression;
import org.teiid.designer.query.sql.symbol.IGroupSymbol;
/**
*
*/
public interface IQueryResolver<C extends ICommand, GS extends IGroupSymbol, E extends IExpression> {
/**
* @param command
* @param gSymbol
* @param teiidCommandType
* @param metadata
* @throws Exception
*/
void resolveCommand(C command, GS gSymbol, int teiidCommandType, IQueryMetadataInterface metadata) throws Exception;
/**
* @param command
* @param gSymbol
* @param commandType
* @param metadata
* @param projectedSymbols
*/
void postResolveCommand(C command, GS gSymbol, int teiidCommandType, IQueryMetadataInterface metadata,
List<E> projectedSymbols);
}