Skip to content

Commit 5eeae5c

Browse files
Jsm/schema builder fluency (#3)
* update Schema.Builder to return subclassed builder * rename ConstSchema.ConstSchemaBuilder to Builder for consistency * add japicmp config * add missed japicmp config
1 parent 440c9ef commit 5eeae5c

28 files changed

+270
-72
lines changed

core/pom.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,30 @@
166166
<binaryCompatible>true</binaryCompatible>
167167
<sourceCompatible>true</sourceCompatible>
168168
</overrideCompatibilityChangeParameter>
169+
<overrideCompatibilityChangeParameter>
170+
<compatibilityChange>METHOD_REMOVED</compatibilityChange>
171+
<binaryCompatible>true</binaryCompatible>
172+
<sourceCompatible>true</sourceCompatible>
173+
<semanticVersionLevel>MAJOR</semanticVersionLevel>
174+
</overrideCompatibilityChangeParameter>
175+
<overrideCompatibilityChangeParameter>
176+
<compatibilityChange>METHOD_RETURN_TYPE_CHANGED</compatibilityChange>
177+
<binaryCompatible>true</binaryCompatible>
178+
<sourceCompatible>true</sourceCompatible>
179+
<semanticVersionLevel>MAJOR</semanticVersionLevel>
180+
</overrideCompatibilityChangeParameter>
181+
<overrideCompatibilityChangeParameter>
182+
<compatibilityChange>CONSTRUCTOR_REMOVED</compatibilityChange>
183+
<binaryCompatible>true</binaryCompatible>
184+
<sourceCompatible>true</sourceCompatible>
185+
<semanticVersionLevel>MAJOR</semanticVersionLevel>
186+
</overrideCompatibilityChangeParameter>
187+
<overrideCompatibilityChangeParameter>
188+
<compatibilityChange>METHOD_ABSTRACT_ADDED_TO_CLASS</compatibilityChange>
189+
<binaryCompatible>true</binaryCompatible>
190+
<sourceCompatible>true</sourceCompatible>
191+
<semanticVersionLevel>MAJOR</semanticVersionLevel>
192+
</overrideCompatibilityChangeParameter>
169193
</overrideCompatibilityChangeParameters>
170194
</parameter>
171195
</configuration>

core/src/main/java/org/everit/json/schema/ArraySchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class ArraySchema
1919
* Builder class for {@link ArraySchema}.
2020
*/
2121
public static class Builder
22-
extends Schema.Builder<ArraySchema> {
22+
extends Schema.Builder<ArraySchema, Builder> {
2323

2424
private boolean requiresArray = true;
2525

@@ -39,6 +39,12 @@ public static class Builder
3939

4040
private Schema containedItemSchema;
4141

42+
@Override
43+
protected Builder getBuilder()
44+
{
45+
return this;
46+
}
47+
4248
/**
4349
* Adds an item schema for tuple validation. The array items of the subject under validation
4450
* will be matched to expected schemas by their index. In other words the {n}th

core/src/main/java/org/everit/json/schema/BooleanSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ public class BooleanSchema extends Schema {
1212
/**
1313
* Builder class for {@link BooleanSchema}.
1414
*/
15-
public static class Builder extends Schema.Builder<BooleanSchema> {
15+
public static class Builder extends Schema.Builder<BooleanSchema, Builder> {
16+
17+
@Override
18+
protected Builder getBuilder()
19+
{
20+
return this;
21+
}
1622

1723
@Override
1824
public BooleanSchema build() {

core/src/main/java/org/everit/json/schema/CombinedSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,20 @@ public class CombinedSchema extends Schema {
1717
/**
1818
* Builder class for {@link CombinedSchema}.
1919
*/
20-
public static class Builder extends Schema.Builder<CombinedSchema> {
20+
public static class Builder extends Schema.Builder<CombinedSchema, Builder> {
2121

2222
private ValidationCriterion criterion;
2323

2424
private Collection<Schema> subschemas = new ArrayList<>();
2525

2626
private boolean synthetic;
2727

28+
@Override
29+
protected Builder getBuilder()
30+
{
31+
return this;
32+
}
33+
2834
@Override
2935
public CombinedSchema build() {
3036
return new CombinedSchema(this);

core/src/main/java/org/everit/json/schema/ConditionalSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ public class ConditionalSchema extends Schema {
1010
/**
1111
* Builder class for {@link ConditionalSchema}.
1212
*/
13-
public static class Builder extends Schema.Builder<ConditionalSchema> {
13+
public static class Builder extends Schema.Builder<ConditionalSchema, Builder> {
1414
private Schema ifSchema;
1515
private Schema thenSchema;
1616
private Schema elseSchema;
1717

18+
@Override
19+
protected Builder getBuilder()
20+
{
21+
return this;
22+
}
23+
1824
public Builder ifSchema(final Schema ifSchema) {
1925
this.ifSchema = ifSchema;
2026
return this;

core/src/main/java/org/everit/json/schema/ConstSchema.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,40 @@
44

55
public class ConstSchema extends Schema {
66

7-
public static class ConstSchemaBuilder extends Schema.Builder<ConstSchema> {
7+
/**
8+
* @deprecated This class has been renamed to "Builder".
9+
*/
10+
@Deprecated
11+
public static class ConstSchemaBuilder extends Builder {
12+
}
13+
14+
public static class Builder extends Schema.Builder<ConstSchema, Builder> {
815

916
private Object permittedValue;
1017

11-
public ConstSchemaBuilder permittedValue(Object permittedValue) {
18+
public Builder permittedValue(Object permittedValue) {
1219
this.permittedValue = permittedValue;
1320
return this;
1421
}
1522

23+
@Override
24+
protected Builder getBuilder()
25+
{
26+
return this;
27+
}
28+
1629
@Override public ConstSchema build() {
1730
return new ConstSchema(this);
1831
}
1932
}
2033

21-
public static ConstSchemaBuilder builder() {
22-
return new ConstSchemaBuilder();
34+
public static Builder builder() {
35+
return new Builder();
2336
}
2437

2538
private final Object permittedValue;
2639

27-
protected ConstSchema(ConstSchemaBuilder builder) {
40+
protected ConstSchema(Builder builder) {
2841
super(builder);
2942
this.permittedValue = toJavaValue(builder.permittedValue);
3043
}

core/src/main/java/org/everit/json/schema/EmptySchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@ public class EmptySchema extends Schema {
1010
/**
1111
* Builder class for {@link EmptySchema}.
1212
*/
13-
public static class Builder extends Schema.Builder<EmptySchema> {
13+
public static class Builder extends Schema.Builder<EmptySchema, Builder> {
14+
15+
@Override
16+
protected Builder getBuilder()
17+
{
18+
return this;
19+
}
1420

1521
@Override
1622
public EmptySchema build() {

core/src/main/java/org/everit/json/schema/EnumSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@ static List<Object> toJavaValues(List<Object> orgJsons) {
3838
/**
3939
* Builder class for {@link EnumSchema}.
4040
*/
41-
public static class Builder extends Schema.Builder<EnumSchema> {
41+
public static class Builder extends Schema.Builder<EnumSchema, Builder> {
42+
43+
@Override
44+
protected Builder getBuilder()
45+
{
46+
return this;
47+
}
4248

4349
private List<Object> possibleValues = new ArrayList<>();
4450

core/src/main/java/org/everit/json/schema/FalseSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@
55
*/
66
public class FalseSchema extends Schema {
77

8-
public static class Builder extends Schema.Builder<FalseSchema> {
8+
public static class Builder extends Schema.Builder<FalseSchema, Builder> {
9+
10+
@Override
11+
protected Builder getBuilder()
12+
{
13+
return this;
14+
}
915

1016
@Override public FalseSchema build() {
1117
return new FalseSchema(this);

core/src/main/java/org/everit/json/schema/NotSchema.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ public class NotSchema extends Schema {
1212
/**
1313
* Builder class for {@link NotSchema}.
1414
*/
15-
public static class Builder extends Schema.Builder<NotSchema> {
15+
public static class Builder extends Schema.Builder<NotSchema, Builder> {
16+
17+
@Override
18+
protected Builder getBuilder()
19+
{
20+
return this;
21+
}
1622

1723
private Schema mustNotMatch;
1824

0 commit comments

Comments
 (0)