class OdfValidator implements Validate {

	public ValidateResult validate(DigitalObject digitalObject, URI format,
			List<Parameter> parameters) {
		
		if(digitalObject==null || digitalObject.getContent() == null) {
			return this.returnWithErrorMessage(format, "[OdfValidator] ERROR: No input file found!", null);
		}
		
		String name = DigitalObjectUtils.getFileNameFromDigObject(digitalObject, format);
		
		File inputOdfFile = DigitalObjectUtils.toFile(digitalObject);
		inputOdfFile.deleteOnExit();
		
		CoreOdfValidator odfValidator = new CoreOdfValidator();
		
		OdfValidatorResult result = odfValidator.validate(inputOdfFile, parameters);
		
		ValidateResult vr = null;
		
		if(result.documentIsValid()) {
			vr = new ValidateResult.Builder(format,
	                new ServiceReport(Type.INFO, Status.SUCCESS, result.getValidationResultAsString()))
	                .ofThisFormat(result.isOdfFile())
	                .validInRegardToThisFormat(result.documentIsValid()).build();
		}
		else {
			vr = new ValidateResult.Builder(format, new ServiceReport(Type.INFO, Status.SUCCESS, result.getValidationResultAsString()))
			.ofThisFormat(result.isOdfFile())
			.validInRegardToThisFormat(result.documentIsValid()).build();
		}
		return vr;
	}

}