Data Pipeline Patterns
Validation Summary
Validation can produce a compact summary instead of stopping at the first failure.
Validation Summary
ValidationSummary.java
public class ValidationSummary {
record Submission(String name, int score) {}
record Summary(int accepted, int rejected) {}
static Summary summarize(Submission[] submissions, int minimumScore) {
int accepted = 0;
int rejected = 0;
for (Submission submission : submissions) {
if (submission.score() >= minimumScore) {
accepted++;
} else {
rejected++;
}
}
return new Summary(accepted, rejected);
}
public static void main(String[] args) {
int minimumScore = ;
Submission[] submissions = {
new Submission("alpha", 95),
new Submission("beta", 68),
new Submission("gamma", 82)
};
Summary summary = summarize(submissions, minimumScore);
System.out.println("accepted=" + summary.accepted());
System.out.println("rejected=" + summary.rejected());
}
}
public class ValidationSummary {
record Submission(String name, int score) {}
record Summary(int accepted, int rejected) {}
static Summary summarize(Submission[] submissions, int minimumScore) {
int accepted = 0;
int rejected = 0;
for (Submission submission : submissions) {
if (submission.score() >= minimumScore) {
accepted++;
} else {
rejected++;
}
}
return new Summary(accepted, rejected);
}
public static void main(String[] args) {
int minimumScore = ;
Submission[] submissions = {
new Submission("alpha", 95),
new Submission("beta", 68),
new Submission("gamma", 82)
};
Summary summary = summarize(submissions, minimumScore);
System.out.println("accepted=" + summary.accepted());
System.out.println("rejected=" + summary.rejected());
}
}
public class ValidationSummary {
record Submission(String name, int score) {}
record Summary(int accepted, int rejected) {}
static Summary summarize(Submission[] submissions, int minimumScore) {
int accepted = 0;
int rejected = 0;
for (Submission submission : submissions) {
if (submission.score() >= minimumScore) {
accepted++;
} else {
rejected++;
}
}
return new Summary(accepted, rejected);
}
public static void main(String[] args) {
int minimumScore = ;
Submission[] submissions = {
new Submission("alpha", 95),
new Submission("beta", 68),
new Submission("gamma", 82)
};
Summary summary = summarize(submissions, minimumScore);
System.out.println("accepted=" + summary.accepted());
System.out.println("rejected=" + summary.rejected());
}
}
validation threshold
The threshold decides which records count as accepted.
summary record
A summary record returns both counts together without exposing mutable state.