Skip to content

Commit e0f86f6

Browse files
authored
make the context attribute generic (#201)
1 parent 059dc75 commit e0f86f6

File tree

5 files changed

+23
-23
lines changed

5 files changed

+23
-23
lines changed

validator/src/main/java/io/avaje/validation/adapter/ValidationContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ interface AdapterCreateRequest {
162162
Map<String, Object> attributes();
163163

164164
/** Return the attribute for the given key. */
165-
Object attribute(String key);
165+
<T> T attribute(String key);
166166

167167
/** Return the message to use */
168168
Message message();

validator/src/main/java/io/avaje/validation/core/CoreAdapterBuilder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,13 @@ record Request(
113113

114114
@Override
115115
public String targetType() {
116-
return (String)attribute("_type");
116+
return attribute("_type");
117117
}
118118

119119
@Override
120-
public Object attribute(String key) {
121-
return attributes.get(key);
120+
@SuppressWarnings("unchecked")
121+
public <T> T attribute(String key) {
122+
return (T) attributes.get(key);
122123
}
123124

124125
@Override

validator/src/main/java/io/avaje/validation/core/adapters/BasicAdapters.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,14 @@ static sealed class PatternAdapter extends AbstractConstraintAdapter<CharSequenc
4040
protected final Predicate<String> pattern;
4141

4242
PatternAdapter(AdapterCreateRequest request) {
43-
this(request, (String) request.attribute("regexp"));
43+
this(request, request.attribute("regexp"));
4444
}
4545

46-
@SuppressWarnings("unchecked")
4746
PatternAdapter(AdapterCreateRequest request, String regex) {
4847
super(request);
4948
int flags = 0;
5049

51-
final List<RegexFlag> flags1 = (List<RegexFlag>) request.attribute("flags");
50+
final List<RegexFlag> flags1 = request.attribute("flags");
5251
if (flags1 != null) {
5352
for (final var flag : flags1) {
5453
flags |= flag.getValue();
@@ -75,8 +74,8 @@ private static final class SizeAdapter implements ValidationAdapter<Object> {
7574

7675
SizeAdapter(AdapterCreateRequest request) {
7776
this.groups = request.groups();
78-
this.min = (int) request.attribute("min");
79-
this.max = (int) request.attribute("max");
77+
this.min = request.attribute("min");
78+
this.max = request.attribute("max");
8079

8180
final Object msgKey = request.attribute("message");
8281
if (min == 0 && LENGTH.equals(msgKey)) {
@@ -150,7 +149,7 @@ private static final class NotBlankAdapter implements ValidationAdapter<CharSequ
150149
}
151150

152151
private static int maxLength(AdapterCreateRequest request) {
153-
final Integer max = (Integer) request.attribute("max");
152+
final Integer max = request.attribute("max");
154153
return Objects.requireNonNullElse(max, 0);
155154
}
156155

validator/src/main/java/io/avaje/validation/core/adapters/DateRangeAdapter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ final class DateRangeAdapter extends AbstractConstraintAdapter<Object> {
2121
this.referenceClock = referenceClock;
2222
this.tolerance = tolerance;
2323
this._type = request.targetType();
24-
min = parsePeriod((String) request.attribute("min"), true);
25-
max = parsePeriod((String) request.attribute("max"), false);
24+
min = parsePeriod(request.attribute("min"), true);
25+
max = parsePeriod(request.attribute("max"), false);
2626
}
2727

2828
private TemporalAmount parsePeriod(String period, boolean negateTolerance) {
2929
if (period == null || period.isEmpty()) {
3030
return null;
3131
}
32-
if (period.equals("now")) {
32+
if ("now".equals(period)) {
3333
return nowTolerance(negateTolerance);
3434
}
3535
try {

validator/src/main/java/io/avaje/validation/core/adapters/NumberAdapters.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ private static final class MaxAdapter extends PrimitiveAdapter<Number>
125125
MaxAdapter(AdapterCreateRequest request) {
126126
super(request);
127127
this.targetType = request.targetType();
128-
this.max = (long) request.attribute(VALUE);
128+
this.max = request.attribute(VALUE);
129129
}
130130

131131
@Override
@@ -180,7 +180,7 @@ static final class MaxBigDecimal extends AbstractConstraintAdapter<BigDecimal>
180180

181181
MaxBigDecimal(AdapterCreateRequest request) {
182182
super(request);
183-
this.max = new BigDecimal(String.valueOf(request.attribute(VALUE)));
183+
this.max = new BigDecimal(String.valueOf(request.<Object>attribute(VALUE)));
184184
}
185185

186186
@Override
@@ -196,7 +196,7 @@ static final class MaxBigInteger extends AbstractConstraintAdapter<BigInteger>
196196

197197
MaxBigInteger(AdapterCreateRequest request) {
198198
super(request);
199-
this.max = new BigInteger(String.valueOf(request.attribute(VALUE)));
199+
this.max = new BigInteger(String.valueOf(request.<Object>attribute(VALUE)));
200200
}
201201

202202
@Override
@@ -214,7 +214,7 @@ private static final class MinAdapter extends PrimitiveAdapter<Number>
214214
MinAdapter(AdapterCreateRequest request) {
215215
super(request);
216216
this.targetType = request.targetType();
217-
this.min = (long) request.attribute(VALUE);
217+
this.min = request.attribute(VALUE);
218218
}
219219

220220
@Override
@@ -268,7 +268,7 @@ static final class MinBigDecimal extends AbstractConstraintAdapter<BigDecimal>
268268

269269
MinBigDecimal(AdapterCreateRequest request) {
270270
super(request);
271-
this.min = new BigDecimal(String.valueOf(request.attribute(VALUE)));
271+
this.min = new BigDecimal(String.valueOf(request.<Object>attribute(VALUE)));
272272
}
273273

274274
@Override
@@ -284,7 +284,7 @@ static final class MinBigInteger extends AbstractConstraintAdapter<BigInteger>
284284

285285
MinBigInteger(AdapterCreateRequest request) {
286286
super(request);
287-
this.min = new BigInteger(String.valueOf(request.attribute(VALUE)));
287+
this.min = new BigInteger(String.valueOf(request.<Object>attribute(VALUE)));
288288
}
289289

290290
@Override
@@ -438,8 +438,8 @@ private static final class RangeAdapter extends PrimitiveAdapter<Number> {
438438
@SuppressWarnings("unchecked")
439439
RangeAdapter(AdapterCreateRequest request) {
440440
super(request);
441-
this.min = (long) request.attribute("min");
442-
this.max = (long) request.attribute("max");
441+
this.min = request.attribute("min");
442+
this.max = request.attribute("max");
443443
this.maxAdapter = (NumberAdapter<Number>) max(request.withValue(max));
444444
this.minAdapter = (NumberAdapter<Number>) min(request.withValue(min));
445445
}
@@ -490,8 +490,8 @@ private static final class RangeStringAdapter extends AbstractConstraintAdapter<
490490

491491
RangeStringAdapter(AdapterCreateRequest request) {
492492
super(request);
493-
this.min = BigDecimal.valueOf((long) request.attribute("min"));
494-
this.max = BigDecimal.valueOf((long) request.attribute("max"));
493+
this.min = BigDecimal.valueOf(request.attribute("min"));
494+
this.max = BigDecimal.valueOf(request.attribute("max"));
495495
}
496496

497497
@Override

0 commit comments

Comments
 (0)