- Make the interfaces extend the "Serializable", instead of implementing the "Serializable" in the classes and have to return them, instead of their interface, thus reducing code-abstraction.

- Add the ability to print a "StandardValidationResult" object in a user-friendly way.
This commit is contained in:
Lampros Smyrnaios 2023-12-04 17:32:58 +02:00
parent 0f01a962a8
commit 7693532124
4 changed files with 50 additions and 11 deletions

View File

@ -1,17 +1,21 @@
package eu.dnetlib.validator2.validation; package eu.dnetlib.validator2.validation;
import java.io.Serializable; import eu.dnetlib.validator2.validation.guideline.Guideline;
import java.util.Map; import java.util.Map;
import static eu.dnetlib.validator2.validation.guideline.Guideline.Result;
public class StandardValidationResult implements XMLApplicationProfile.ValidationResult, Serializable { public class StandardValidationResult implements XMLApplicationProfile.ValidationResult {
private final String id; private String id;
private final double score; private double score;
private final Map<String, Result> results; private Map<String, Guideline.Result> results;
public StandardValidationResult(String id, double score, Map<String, Result> results) {
public StandardValidationResult() {
}
public StandardValidationResult(String id, double score, Map<String, Guideline.Result> results) {
this.id = id; this.id = id;
this.score = score; this.score = score;
this.results = results; this.results = results;
@ -28,8 +32,40 @@ public class StandardValidationResult implements XMLApplicationProfile.Validatio
} }
@Override @Override
public Map<String, Result> results() { public Map<String, Guideline.Result> results() {
return results; return results;
} }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public Map<String, Guideline.Result> getResults() {
return results;
}
public void setResults(Map<String, Guideline.Result> results) {
this.results = results;
}
@Override
public String toString() {
return "StandardValidationResult{" +
"id='" + id + '\'' +
", score=" + score +
", results=" + results +
'}';
}
} }

View File

@ -3,6 +3,7 @@ package eu.dnetlib.validator2.validation;
import eu.dnetlib.validator2.validation.guideline.Guideline; import eu.dnetlib.validator2.validation.guideline.Guideline;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
@ -21,7 +22,7 @@ public interface XMLApplicationProfile {
int maxScore(); int maxScore();
interface ValidationResult { interface ValidationResult extends Serializable {
String id(); String id();

View File

@ -2,6 +2,8 @@ package eu.dnetlib.validator2.validation.guideline;
import eu.dnetlib.validator2.engine.Status; import eu.dnetlib.validator2.engine.Status;
import java.io.Serializable;
public interface Guideline<T> { public interface Guideline<T> {
String getName(); String getName();
@ -22,7 +24,7 @@ public interface Guideline<T> {
Result validate(String id, T t); Result validate(String id, T t);
interface Result { interface Result extends Serializable {
int score(); int score();

View File

@ -37,7 +37,7 @@ public abstract class AbstractOpenAireProfile implements XMLApplicationProfile,
} }
@Override @Override
public StandardValidationResult validate(String id, Document document) { public ValidationResult validate(String id, Document document) {
int maxScore = maxScore(); int maxScore = maxScore();
double score = 0; double score = 0;
final Map<String, Guideline.Result> results = new HashMap<>(); final Map<String, Guideline.Result> results = new HashMap<>();