package com.ldbc.driver.validation;
import java.util.ArrayList;
import java.util.List;
public class ResultsLogValidationResult
{
public enum ValidationErrorType
{
TOO_MANY_LATE_OPERATIONS,
TOO_MANY_LATE_OPERATIONS_FOR_TYPE,
UNEXPECTED
}
public static class ValidationError
{
private final ValidationErrorType errorType;
private final String message;
public ValidationError( ValidationErrorType errorType, String message )
{
this.errorType = errorType;
this.message = message;
}
public ValidationErrorType errorType()
{
return errorType;
}
public String message()
{
return message;
}
}
private final List<ValidationError> errors;
public ResultsLogValidationResult()
{
this.errors = new ArrayList<>();
}
public void addError( ValidationErrorType validationErrorType, String errorMessage )
{
errors.add( new ValidationError( validationErrorType, errorMessage ) );
}
public List<ValidationError> errors()
{
return errors;
}
public boolean isSuccessful()
{
return errors.isEmpty();
}
@Override
public String toString()
{
StringBuffer sb = new StringBuffer();
if ( isSuccessful() )
{
sb.append( "PASSED SCHEDULE AUDIT -- workload operations executed to schedule" );
}
else
{
sb.append( "FAILED SCHEDULE AUDIT -- errors:" );
for ( ValidationError error : errors )
{
sb.append( "\n\t" ).append( error.errorType().name() ).append( " : " ).append( error.message() );
}
}
return sb.toString();
}
}