@@ -57,18 +57,19 @@ public IfValidator(String schemaPath, JsonNode schemaNode, JsonSchema parentSche
57
57
58
58
public Set <ValidationMessage > validate (JsonNode node , JsonNode rootNode , String at ) {
59
59
debug (logger , node , rootNode , at );
60
+ CollectorContext collectorContext = CollectorContext .getInstance ();
60
61
61
62
// As if-then-else might contain multiple schemas take a backup of evaluatedProperties.
62
- Set <String > backupEvaluatedProperties = CollectorContext . getInstance (). copyEvaluatedProperties ();
63
+ Collection <String > backupEvaluatedProperties = collectorContext . getEvaluatedProperties ();
63
64
64
- Set <String > ifEvaluatedProperties = Collections .emptySet ();
65
+ Collection <String > ifEvaluatedProperties = Collections .emptyList ();
65
66
66
- Set <String > thenEvaluatedProperties = Collections .emptySet ();
67
+ Collection <String > thenEvaluatedProperties = Collections .emptyList ();
67
68
68
- Set <String > elseEvaluatedProperties = Collections .emptySet ();
69
+ Collection <String > elseEvaluatedProperties = Collections .emptyList ();
69
70
70
71
// Make the evaluatedProperties list empty.
71
- CollectorContext . getInstance (). getEvaluatedProperties (). clear ();
72
+ collectorContext . resetEvaluatedProperties ();
72
73
73
74
Set <ValidationMessage > errors = new LinkedHashSet <ValidationMessage >();
74
75
@@ -82,38 +83,38 @@ public Set<ValidationMessage> validate(JsonNode node, JsonNode rootNode, String
82
83
ifConditionPassed = false ;
83
84
}
84
85
// Evaluated Properties from if.
85
- ifEvaluatedProperties = CollectorContext . getInstance (). copyEvaluatedProperties ();
86
+ ifEvaluatedProperties = collectorContext . getEvaluatedProperties ();
86
87
87
88
if (ifConditionPassed && thenSchema != null ) {
88
89
89
90
// Make the evaluatedProperties list empty.
90
- CollectorContext . getInstance (). getEvaluatedProperties (). clear ();
91
+ collectorContext . resetEvaluatedProperties ();
91
92
92
93
errors .addAll (thenSchema .validate (node , rootNode , at ));
93
94
94
95
// Collect the then evaluated properties.
95
- thenEvaluatedProperties = CollectorContext . getInstance (). copyEvaluatedProperties ();
96
+ thenEvaluatedProperties = collectorContext . getEvaluatedProperties ();
96
97
97
98
} else if (!ifConditionPassed && elseSchema != null ) {
98
99
99
100
// Make the evaluatedProperties list empty.
100
- CollectorContext . getInstance (). getEvaluatedProperties (). clear ();
101
+ collectorContext . resetEvaluatedProperties ();
101
102
102
103
errors .addAll (elseSchema .validate (node , rootNode , at ));
103
104
104
105
// Collect the else evaluated properties.
105
- elseEvaluatedProperties = CollectorContext . getInstance (). copyEvaluatedProperties ();
106
+ elseEvaluatedProperties = collectorContext . getEvaluatedProperties ();
106
107
}
107
108
108
109
} finally {
109
- CollectorContext . getInstance (). replaceEvaluatedProperties (backupEvaluatedProperties );
110
+ collectorContext . setEvaluatedProperties (backupEvaluatedProperties );
110
111
if (errors .isEmpty ()) {
111
112
// If the "if" keyword condition is passed then only add if properties as evaluated.
112
113
if (ifConditionPassed ) {
113
- CollectorContext . getInstance () .getEvaluatedProperties ().addAll (ifEvaluatedProperties );
114
+ collectorContext .getEvaluatedProperties ().addAll (ifEvaluatedProperties );
114
115
}
115
- CollectorContext . getInstance () .getEvaluatedProperties ().addAll (thenEvaluatedProperties );
116
- CollectorContext . getInstance () .getEvaluatedProperties ().addAll (elseEvaluatedProperties );
116
+ collectorContext .getEvaluatedProperties ().addAll (thenEvaluatedProperties );
117
+ collectorContext .getEvaluatedProperties ().addAll (elseEvaluatedProperties );
117
118
}
118
119
}
119
120
0 commit comments