/* The contents of this file are subject to the license and copyright terms
* detailed in the license directory at the root of the source tree (also
* available online at http://fedora-commons.org/license/).
*/
package fedora.server.validation;
import java.io.File;
import java.io.InputStream;
import fedora.server.errors.ServerException;
/**
* Validates a digital object.
*
* @author Sandy Payette
*/
public interface DOValidator {
/**
* Validates a digital object.
*
* @param in
* The digital object provided as a bytestream.
* @param validationLevel
* The level of validation to perform on the digital object. This is
* an integer from 0-2 with the following meanings: 0 = VALIDATE_ALL
* (do all validation levels) 1 = VALIDATE_XML_SCHEMA (perform only
* XML Schema validation) 2 = VALIDATE_SCHEMATRON (perform only
* Schematron Rules validation)
* @param phase
* The stage in the work flow for which the validation should be
* contextualized. "ingest" = the object is in the submission format
* for the ingest stage phase "store" = the object is in the
* authoritative format for the final storage phase
* @throws ServerException
* If validation fails for any reason.
*/
public void validate(InputStream in,
String format,
int validationLevel,
String phase) throws ServerException;
/**
* Validates a digital object.
*
* @param in
* The digital object provided as a file.
* @param validationLevel
* The level of validation to perform on the digital object. This is
* an integer from 0-2 with the following meanings: 0 = VALIDATE_ALL
* (do all validation levels) 1 = VALIDATE_XML_SCHEMA (perform only
* XML Schema validation) 2 = VALIDATE_SCHEMATRON (perform only
* Schematron Rules validation)
* @param phase
* The stage in the work flow for which the validation should be
* contextualized. "ingest" = the object is in the submission format
* for the ingest stage phase "store" = the object is in the
* authoritative format for the final storage phase
* @throws ServerException
* If validation fails for any reason.
*/
public void validate(File in,
String format,
int validationLevel,
String phase) throws ServerException;
}