1616
1717package com .networknt .schema ;
1818
19+ import java .util .ArrayDeque ;
1920import java .util .ArrayList ;
2021import java .util .HashMap ;
2122import java .util .List ;
2526import com .networknt .schema .annotation .Annotations ;
2627import com .networknt .schema .keyword .DiscriminatorState ;
2728import com .networknt .schema .path .NodePath ;
28- import com .networknt .schema .result .InstanceResults ;
29+ // import com.networknt.schema.result.InstanceResults;
2930import com .networknt .schema .walk .WalkConfig ;
3031
3132/**
@@ -37,11 +38,40 @@ public class ExecutionContext {
3738 private CollectorContext collectorContext = null ;
3839
3940 private Annotations annotations = null ;
40- private InstanceResults instanceResults = null ;
41+ // private InstanceResults instanceResults = null;
4142 private List <Error > errors = new ArrayList <>();
4243
43- private Map <NodePath , DiscriminatorState > discriminatorMapping = new HashMap <>();
44+ private final Map <NodePath , DiscriminatorState > discriminatorMapping = new HashMap <>();
4445
46+ NodePath evaluationPath ;
47+ final ArrayDeque <Schema > evaluationSchema = new ArrayDeque <>(64 );
48+ final ArrayDeque <Object > evaluationSchemaPath = new ArrayDeque <>(64 );
49+
50+ public NodePath getEvaluationPath () {
51+ return evaluationPath ;
52+ }
53+
54+ public void evaluationPathAddLast (String token ) {
55+ this .evaluationPath = evaluationPath .append (token );
56+ }
57+
58+ public void evaluationPathAddLast (int token ) {
59+ this .evaluationPath = evaluationPath .append (token );
60+ }
61+
62+ public void evaluationPathRemoveLast () {
63+ this .evaluationPath = evaluationPath .getParent ();
64+ }
65+
66+
67+ public ArrayDeque <Schema > getEvaluationSchema () {
68+ return evaluationSchema ;
69+ }
70+
71+ public ArrayDeque <Object > getEvaluationSchemaPath () {
72+ return evaluationSchemaPath ;
73+ }
74+
4575 public Map <NodePath , DiscriminatorState > getDiscriminatorMapping () {
4676 return discriminatorMapping ;
4777 }
@@ -156,12 +186,12 @@ public Annotations getAnnotations() {
156186 return annotations ;
157187 }
158188
159- public InstanceResults getInstanceResults () {
160- if (this .instanceResults == null ) {
161- this .instanceResults = new InstanceResults ();
162- }
163- return instanceResults ;
164- }
189+ // public InstanceResults getInstanceResults() {
190+ // if (this.instanceResults == null) {
191+ // this.instanceResults = new InstanceResults();
192+ // }
193+ // return instanceResults;
194+ // }
165195
166196 /**
167197 * Determines if the validator should immediately throw a fail fast exception if
@@ -224,4 +254,24 @@ public void walkConfig(Consumer<WalkConfig.Builder> customizer) {
224254 customizer .accept (builder );
225255 this .walkConfig = builder .build ();
226256 }
257+
258+ boolean unevaluatedPropertiesPresent = false ;
259+
260+ boolean unevaluatedItemsPresent = false ;
261+
262+ public boolean isUnevaluatedPropertiesPresent () {
263+ return this .unevaluatedPropertiesPresent ;
264+ }
265+
266+ public boolean isUnevaluatedItemsPresent () {
267+ return this .unevaluatedItemsPresent ;
268+ }
269+
270+ public void setUnevaluatedPropertiesPresent (boolean set ) {
271+ this .unevaluatedPropertiesPresent = set ;
272+ }
273+
274+ public void setUnevaluatedItemsPresent (boolean set ) {
275+ this .unevaluatedItemsPresent = set ;
276+ }
227277}
0 commit comments