Skip to content

Commit 8ecd92b

Browse files
committed
remove special flag
1 parent 6a04e4f commit 8ecd92b

18 files changed

+55
-89
lines changed

core/src/main/java/net/jbock/coerce/BasicBooleanCoercion.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@ final CodeBlock map() {
1616
return CodeBlock.builder().build();
1717
}
1818

19-
@Override
20-
final boolean special() {
21-
// flags only
22-
return true;
23-
}
24-
2519
@Override
2620
CodeBlock jsonExpr(String param) {
2721
return CodeBlock.builder().add("$L", param).build();

core/src/main/java/net/jbock/coerce/Coercion.java

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,39 @@
1010

1111
import java.util.Collections;
1212
import java.util.Objects;
13-
import java.util.Optional;
1413

1514
public final class Coercion {
1615

1716
private static final ClassName BOOLEAN_CLASS = ClassName.get(Boolean.class);
1817

1918
private final TypeName trigger;
19+
20+
// helper.build
2021
private final CodeBlock map;
21-
private final boolean special;
22+
23+
// helper.build
2224
private final CodeBlock initMapper;
25+
26+
// toString
2327
private final CodeBlock jsonExpr;
28+
29+
// toString
2430
private final CodeBlock mapJsonExpr;
31+
32+
// impl constructor
2533
private final CodeBlock extract;
34+
35+
// impl constructor
2636
private final TypeName paramType;
37+
38+
// impl
2739
private final FieldSpec field;
40+
2841
private final CoercionKind kind;
2942

3043
Coercion(
3144
TypeName trigger,
3245
CodeBlock map,
33-
boolean special,
3446
CodeBlock initMapper,
3547
CodeBlock jsonExpr,
3648
CodeBlock mapJsonExpr,
@@ -40,7 +52,6 @@ public final class Coercion {
4052
CoercionKind kind) {
4153
this.trigger = trigger;
4254
this.map = map;
43-
this.special = special;
4455
this.initMapper = initMapper;
4556
this.jsonExpr = jsonExpr;
4657
this.mapJsonExpr = mapJsonExpr;
@@ -74,13 +85,6 @@ public CodeBlock mapJsonExpr() {
7485
return mapJsonExpr;
7586
}
7687

77-
/**
78-
* Specials can't be in Optional or List
79-
*/
80-
public boolean special() {
81-
return special;
82-
}
83-
8488
public CodeBlock initMapper() {
8589
return initMapper;
8690
}
@@ -94,11 +98,8 @@ public FieldSpec field() {
9498
}
9599

96100
public boolean flag() {
97-
return field.type.equals(TypeName.BOOLEAN) || BOOLEAN_CLASS.equals(field.type);
98-
}
99-
100-
public boolean repeatable() {
101-
return kind == CoercionKind.LIST_COMBINATION;
101+
return initMapper.isEmpty() &&
102+
(TypeName.BOOLEAN.equals(field.type) || BOOLEAN_CLASS.equals(field.type));
102103
}
103104

104105
public CodeBlock extract() {
@@ -118,22 +119,26 @@ public boolean required() {
118119
}
119120

120121
Coercion withMapper(CodeBlock map, CodeBlock initMapper) {
121-
return new Coercion(trigger, map, special, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
122+
return new Coercion(trigger, map, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
122123
}
123124

124125
Coercion asOptional() {
125126
TypeName paramType = Util.optionalOf(this.paramType);
126127
CodeBlock extract = CodeBlock.builder()
127128
.add("$T.requireNonNull($N)", Objects.class, ParameterSpec.builder(paramType, field.name).build())
128129
.build();
129-
return new Coercion(trigger, map, special, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
130+
return new Coercion(trigger, map, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
130131
}
131132

132133
Coercion asList() {
133134
TypeName paramType = Util.listOf(this.paramType);
134135
CodeBlock extract = CodeBlock.builder()
135136
.add("$T.unmodifiableList($N)", Collections.class, ParameterSpec.builder(paramType, field.name).build())
136137
.build();
137-
return new Coercion(trigger, map, special, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
138+
return new Coercion(trigger, map, initMapper, jsonExpr, mapJsonExpr, extract, paramType, field, kind);
139+
}
140+
141+
public CoercionKind kind() {
142+
return kind;
138143
}
139144
}

core/src/main/java/net/jbock/coerce/CoercionFactory.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,6 @@ CodeBlock mapJsonExpr(FieldSpec field) {
4545
return CodeBlock.builder().add(".map($T::toString).map(quote)", Objects.class).build();
4646
}
4747

48-
/**
49-
* Specials can't be in Optional or List
50-
*/
51-
boolean special() {
52-
return false;
53-
}
54-
5548
CodeBlock initMapper() {
5649
return CodeBlock.builder().build();
5750
}
@@ -68,7 +61,6 @@ final Coercion getCoercion(
6861
Coercion coercion = new Coercion(
6962
trigger,
7063
map(),
71-
special(),
7264
initMapper(),
7365
jsonExpr(field.name),
7466
mapJsonExpr(field),

core/src/main/java/net/jbock/coerce/CoercionKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public enum CoercionKind {
1010
LIST_COMBINATION(true),
1111
OPTIONAL_COMBINATION(true);
1212

13-
final boolean combination;
13+
public final boolean combination;
1414

1515
CoercionKind(boolean combination) {
1616
this.combination = combination;

core/src/main/java/net/jbock/coerce/OptionalDoubleCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ class OptionalDoubleCoercion extends BasicDoubleCoercion {
1515
super(OptionalDouble.class);
1616
}
1717

18-
@Override
19-
boolean special() {
20-
return true;
21-
}
22-
2318
@Override
2419
CodeBlock mapJsonExpr(FieldSpec field) {
2520
return CodeBlock.builder().add(".map($L -> $L)",

core/src/main/java/net/jbock/coerce/OptionalIntCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ class OptionalIntCoercion extends BasicIntegerCoercion {
1515
super(OptionalInt.class);
1616
}
1717

18-
@Override
19-
boolean special() {
20-
return true;
21-
}
22-
2318
@Override
2419
CodeBlock mapJsonExpr(FieldSpec field) {
2520
return CodeBlock.builder().add(".map($L -> $L)",

core/src/main/java/net/jbock/coerce/OptionalLongCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ class OptionalLongCoercion extends BasicLongCoercion {
1515
super(OptionalLong.class);
1616
}
1717

18-
@Override
19-
boolean special() {
20-
return true;
21-
}
22-
2318
@Override
2419
CodeBlock mapJsonExpr(FieldSpec field) {
2520
return CodeBlock.builder().add(".map($L -> $L)",

core/src/main/java/net/jbock/coerce/PrimitiveByteCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ class PrimitiveByteCoercion extends BasicByteCoercion {
1010
super(Byte.TYPE);
1111
}
1212

13-
@Override
14-
boolean special() {
15-
return true;
16-
}
17-
1813
@Override
1914
TypeName paramType() {
2015
return TypeName.get(Byte.class);

core/src/main/java/net/jbock/coerce/PrimitiveCharacterCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ class PrimitiveCharacterCoercion extends BasicCharacterCoercion {
1010
super(Character.TYPE);
1111
}
1212

13-
@Override
14-
boolean special() {
15-
return true;
16-
}
17-
1813
@Override
1914
TypeName paramType() {
2015
return TypeName.get(Character.class);

core/src/main/java/net/jbock/coerce/PrimitiveDoubleCoercion.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ class PrimitiveDoubleCoercion extends BasicDoubleCoercion {
1010
super(Double.TYPE);
1111
}
1212

13-
@Override
14-
boolean special() {
15-
return true;
16-
}
17-
1813
@Override
1914
TypeName paramType() {
2015
return TypeName.get(Double.class);

0 commit comments

Comments
 (0)