package eu.dnetlib.validator2.validation.guideline; import eu.dnetlib.validator2.engine.Status; import java.io.Serializable; import java.util.Collections; import java.util.List; public final class StandardResult implements Guideline.Result, Serializable { private static final List EMPTY = Collections.emptyList(); private List warnings; private List errors; private String internalError; private Status status; private int score; public StandardResult(int score, Status status, List warnings, List errors, String internalError) { this.status = status; this.score = score; this.warnings = warnings; this.errors = errors; this.internalError = internalError; } @Override public int score() { return score; } @Override public Status status() { return status; } @Override public Iterable warnings() { return warnings; } @Override public Iterable errors() { return errors; } @Override public String internalError() { return internalError; } @Override public int getScore() { return score; } @Override public void setScore(int score) { this.score = score; } @Override public Status getStatus() { return status; } @Override public void setStatus(Status status) { this.status = status; } @Override public Iterable getWarnings() { return warnings; } @Override public void setWarnings(Iterable warnings) { this.warnings = (List) warnings; } @Override public Iterable getErrors() { return errors; } @Override public void setErrors(Iterable errors) { this.errors = (List) errors; } @Override public String getInternalError() { return internalError; } @Override public void setInternalError(String internalError) { this.internalError = internalError; } public static StandardResult forError(String message) { return new StandardResult(-1, Status.ERROR, EMPTY, EMPTY, message); } public static StandardResult forSuccess(int score, List warnings) { return new StandardResult(score, Status.SUCCESS, sanitize(warnings), EMPTY, null); // LEONIDAS // if (warnings.isEmpty()) { // return new StandardResult(score, Status.SUCCESS, sanitize(warnings), EMPTY, null); // } // else { // return new StandardResult(0, Status.SUCCESS, sanitize(warnings), EMPTY, null); // } } public static StandardResult forFailure(List warnings, List errors) { return new StandardResult(0, Status.FAILURE, sanitize(warnings), sanitize(errors), null); } private static List sanitize(List list) { if (list == null || list.size() == 0) return EMPTY; return Collections.unmodifiableList(list); } @Override public String toString() { if (status == Status.SUCCESS || status == Status.FAILURE) { return status + " (" + warnings.size() + " warnings) - score " + score; } else { return status + " (" + warnings.size() + " warnings) - " + internalError; } } }