File tree Expand file tree Collapse file tree 4 files changed +27
-9
lines changed
main/java/org/everit/json/schema
test/java/org/everit/json/schema Expand file tree Collapse file tree 4 files changed +27
-9
lines changed Original file line number Diff line number Diff line change @@ -56,14 +56,6 @@ public ReferenceSchema(final Builder builder) {
56
56
this .refValue = requireNonNull (builder .refValue , "refValue cannot be null" );
57
57
}
58
58
59
- @ Override
60
- public void validate (final Object subject ) {
61
- if (referredSchema == null ) {
62
- throw new IllegalStateException ("referredSchema must be injected before validation" );
63
- }
64
- referredSchema .validate (subject );
65
- }
66
-
67
59
@ Override
68
60
public boolean definesProperty (String field ) {
69
61
if (referredSchema == null ) {
@@ -116,7 +108,7 @@ protected boolean canEqual(Object other) {
116
108
}
117
109
118
110
@ Override void accept (Visitor visitor ) {
119
- throw new UnsupportedOperationException ( "not yet implemented" );
111
+ visitor . visitReferenceSchema ( this );
120
112
}
121
113
122
114
@ Override void describePropertiesTo (JSONPrinter writer ) {
Original file line number Diff line number Diff line change @@ -72,6 +72,17 @@ private static boolean isNull(Object obj) {
72
72
}
73
73
}
74
74
75
+ @ Override void visitReferenceSchema (ReferenceSchema referenceSchema ) {
76
+ Schema referredSchema = referenceSchema .getReferredSchema ();
77
+ if (referredSchema == null ) {
78
+ throw new IllegalStateException ("referredSchema must be injected before validation" );
79
+ }
80
+ ValidationException failure = getFailureOfSchema (referredSchema , subject );
81
+ if (failure != null ) {
82
+ failureReporter .failure (failure );
83
+ }
84
+ }
85
+
75
86
ValidationException getFailureOfSchema (Schema schema , Object input ) {
76
87
Object origSubject = this .subject ;
77
88
this .subject = input ;
Original file line number Diff line number Diff line change @@ -102,4 +102,7 @@ void visitFalseSchema(FalseSchema falseSchema) {
102
102
103
103
void visitNotSchema (NotSchema notSchema ) {
104
104
}
105
+
106
+ void visitReferenceSchema (ReferenceSchema referenceSchema ) {
107
+ }
105
108
}
Original file line number Diff line number Diff line change @@ -54,6 +54,18 @@ public void validationShouldDelegateToReferredSchema() {
54
54
.expect ();
55
55
}
56
56
57
+ @ Test (expected = IllegalStateException .class )
58
+ public void validateThrowsExc_IfNoReferredSchemaIsSet () {
59
+ ReferenceSchema subject = ReferenceSchema .builder ().build ();
60
+ subject .validate (null );
61
+ }
62
+
63
+ @ Test (expected = IllegalStateException .class )
64
+ public void definesPropertyThrowsExc_IfNoReferredSchemaIsSet () {
65
+ ReferenceSchema subject = ReferenceSchema .builder ().build ();
66
+ subject .definesProperty ("propName" );
67
+ }
68
+
57
69
@ Test
58
70
public void equalsVerifier () {
59
71
EqualsVerifier .forClass (ReferenceSchema .class )
You can’t perform that action at this time.
0 commit comments