Skip to content

Commit 27832fb

Browse files
committed
Remove need for InstanceResults
1 parent 361bdc4 commit 27832fb

File tree

6 files changed

+35
-13
lines changed

6 files changed

+35
-13
lines changed

src/main/java/com/networknt/schema/ExecutionContext.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import com.networknt.schema.annotation.Annotations;
2727
import com.networknt.schema.keyword.DiscriminatorState;
2828
import com.networknt.schema.path.NodePath;
29-
import com.networknt.schema.result.InstanceResults;
29+
//import com.networknt.schema.result.InstanceResults;
3030
import com.networknt.schema.walk.WalkConfig;
3131

3232
/**
@@ -38,7 +38,7 @@ public class ExecutionContext {
3838
private CollectorContext collectorContext = null;
3939

4040
private Annotations annotations = null;
41-
private InstanceResults instanceResults = null;
41+
// private InstanceResults instanceResults = null;
4242
private List<Error> errors = new ArrayList<>();
4343

4444
private final Map<NodePath, DiscriminatorState> discriminatorMapping = new HashMap<>();
@@ -186,12 +186,12 @@ public Annotations getAnnotations() {
186186
return annotations;
187187
}
188188

189-
public InstanceResults getInstanceResults() {
190-
if (this.instanceResults == null) {
191-
this.instanceResults = new InstanceResults();
192-
}
193-
return instanceResults;
194-
}
189+
// public InstanceResults getInstanceResults() {
190+
// if (this.instanceResults == null) {
191+
// this.instanceResults = new InstanceResults();
192+
// }
193+
// return instanceResults;
194+
// }
195195

196196
/**
197197
* Determines if the validator should immediately throw a fail fast exception if

src/main/java/com/networknt/schema/Schema.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.networknt.schema.resource.ClasspathResourceLoader;
4141
import com.networknt.schema.resource.InputStreamSource;
4242
import com.networknt.schema.resource.ResourceLoader;
43+
import com.networknt.schema.annotation.Annotation;
4344
import com.networknt.schema.keyword.KeywordType;
4445
import com.networknt.schema.utils.JsonNodes;
4546

@@ -634,7 +635,16 @@ public void validate(ExecutionContext executionContext, JsonNode jsonNode, JsonN
634635
if (executionContext.getErrors().size() > currentErrors) {
635636
// Failed with assertion set result and drop all annotations from this schema
636637
// and all subschemas
637-
executionContext.getInstanceResults().setResult(instanceLocation, getSchemaLocation(), executionContext.getEvaluationPath(), false);
638+
List<Annotation> annotations = executionContext.getAnnotations().asMap().get(instanceLocation);
639+
if (annotations != null) {
640+
for (Annotation annotation : annotations) {
641+
if (annotation.getEvaluationPath().startsWith(executionContext.getEvaluationPath())) {
642+
annotation.setValid(false);
643+
}
644+
}
645+
}
646+
647+
//executionContext.getInstanceResults().setResult(instanceLocation, getSchemaLocation(), executionContext.getEvaluationPath(), false);
638648
}
639649
} finally {
640650
executionContext.evaluationSchema.removeLast();

src/main/java/com/networknt/schema/annotation/Annotation.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class Annotation {
3030
private final SchemaLocation schemaLocation;
3131
private final NodePath evaluationPath;
3232
private final Object value;
33+
private boolean valid = true; // If not valid it means dropped
3334

3435
public Annotation(String keyword, NodePath instanceLocation, SchemaLocation schemaLocation,
3536
NodePath evaluationPath, Object value) {
@@ -90,6 +91,14 @@ public <T> T getValue() {
9091
return (T) value;
9192
}
9293

94+
public boolean isValid() {
95+
return valid;
96+
}
97+
98+
public void setValid(boolean valid) {
99+
this.valid = valid;
100+
}
101+
93102
@Override
94103
public String toString() {
95104
return "Annotation [evaluationPath=" + evaluationPath + ", schemaLocation=" + schemaLocation

src/main/java/com/networknt/schema/keyword/UnevaluatedItemsValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode
7272
boolean evaluated = false;
7373

7474
// Get all the valid adjacent annotations
75-
Predicate<Annotation> validEvaluationPathFilter = a -> executionContext.getInstanceResults().isValid(instanceLocation, a.getEvaluationPath());
75+
Predicate<Annotation> validEvaluationPathFilter = a -> a.isValid();
76+
//Predicate<Annotation> validEvaluationPathFilter = a -> executionContext.getInstanceResults().isValid(instanceLocation, a.getEvaluationPath());
7677

7778
Predicate<Annotation> adjacentEvaluationPathFilter = a -> a.getEvaluationPath()
7879
.startsWith(executionContext.getEvaluationPath().getParent());

src/main/java/com/networknt/schema/keyword/UnevaluatedPropertiesValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ public void validate(ExecutionContext executionContext, JsonNode node, JsonNode
5656

5757

5858
// Get all the valid adjacent annotations
59-
Predicate<Annotation> validEvaluationPathFilter = a -> executionContext.getInstanceResults().isValid(instanceLocation, a.getEvaluationPath());
59+
Predicate<Annotation> validEvaluationPathFilter = a -> a.isValid();
60+
//Predicate<Annotation> validEvaluationPathFilter = a -> executionContext.getInstanceResults().isValid(instanceLocation, a.getEvaluationPath());
6061

6162
Predicate<Annotation> adjacentEvaluationPathFilter = a -> a.getEvaluationPath()
6263
.startsWith(executionContext.getEvaluationPath().getParent());

src/main/java/com/networknt/schema/output/OutputUnitData.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,9 @@ public static OutputUnitData from(List<Error> validationErrors, ExecutionContext
100100

101101
OutputUnitKey key = new OutputUnitKey(annotation.getEvaluationPath().getParent(),
102102
annotationSchemaLocation, annotation.getInstanceLocation());
103-
boolean validResult = executionContext.getInstanceResults().isValid(annotation.getInstanceLocation(),
104-
annotation.getEvaluationPath());
103+
// boolean validResult = executionContext.getInstanceResults().isValid(annotation.getInstanceLocation(),
104+
// annotation.getEvaluationPath());
105+
boolean validResult = annotation.isValid();
105106
valid.put(key, validResult);
106107
if (validResult) {
107108
// annotations

0 commit comments

Comments
 (0)