/*
* 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.validator;
import java.util.List;
import org.teiid.designer.query.sql.lang.ICommand;
import org.teiid.designer.query.sql.symbol.IElementSymbol;
import org.teiid.designer.validator.IValidator.IValidatorReport;
/**
*
*/
public interface IUpdateValidator<C extends ICommand, ES extends IElementSymbol> {
/**
* Update type enumerator
*/
public enum TransformUpdateType {
/**
* The default handling should be used
*/
INHERENT,
/**
* An instead of trigger (TriggerAction) has been defined
*/
INSTEAD_OF
}
/**
* Validate the command
*
* @param command
* @param elemSymbols
* @throws Exception
*/
void validate(C command, List<ES> elemSymbols) throws Exception;
/**
* @return insert report
*/
IValidatorReport getInsertReport();
/**
* @return update report
*/
IValidatorReport getUpdateReport();
/**
* @return delete report
*/
IValidatorReport getDeleteReport();
/**
* @return report
*/
IValidatorReport getReport();
}