Skip to content

Commit 3101f70

Browse files
committed
add bean validation for ScaledBigDecimal
1 parent 84702e8 commit 3101f70

8 files changed

Lines changed: 175 additions & 0 deletions
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.Max;
7+
8+
public class MaxScaledBigDecimalValidator implements ConstraintValidator<Max, ScaledBigDecimal> {
9+
10+
private long upperBound;
11+
12+
@Override
13+
public void initialize(Max constraintAnnotation) {
14+
this.upperBound = constraintAnnotation.value();
15+
}
16+
17+
@Override
18+
public boolean isValid(ScaledBigDecimal scaledBigDecimal, ConstraintValidatorContext context) {
19+
if (scaledBigDecimal == null) {
20+
return true;
21+
}
22+
23+
return scaledBigDecimal.compareTo(new ScaledBigDecimal(upperBound)) <= 0;
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.Min;
7+
8+
public class MinScaledBigDecimalValidator implements ConstraintValidator<Min, ScaledBigDecimal> {
9+
10+
private Long lowerBound;
11+
12+
@Override
13+
public void initialize(Min constraintAnnotation) {
14+
this.lowerBound = constraintAnnotation.value();
15+
}
16+
17+
@Override
18+
public boolean isValid(ScaledBigDecimal scaledBigDecimal, ConstraintValidatorContext context) {
19+
if (scaledBigDecimal == null) {
20+
return true;
21+
}
22+
23+
return scaledBigDecimal.compareTo(new ScaledBigDecimal(lowerBound)) >= 0;
24+
}
25+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.NegativeOrZero;
7+
8+
public class NegativeOrZeroScaledBigDecimalValidator implements ConstraintValidator<NegativeOrZero, ScaledBigDecimal> {
9+
@Override
10+
public boolean isValid(ScaledBigDecimal value, ConstraintValidatorContext context) {
11+
if (value == null) {
12+
return true;
13+
}
14+
15+
return value.compareTo(ScaledBigDecimal.ZERO) < 1;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.Negative;
7+
8+
public class NegativeScaledBigDecimalValidator implements ConstraintValidator<Negative, ScaledBigDecimal> {
9+
@Override
10+
public boolean isValid(ScaledBigDecimal value, ConstraintValidatorContext context) {
11+
if (value == null) {
12+
return true;
13+
}
14+
15+
return value.compareTo(ScaledBigDecimal.ZERO) < 0;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.PositiveOrZero;
7+
8+
public class PositiveOrZeroScaledBigDecimalValidator implements ConstraintValidator<PositiveOrZero, ScaledBigDecimal> {
9+
@Override
10+
public boolean isValid(ScaledBigDecimal value, ConstraintValidatorContext context) {
11+
if (value == null) {
12+
return true;
13+
}
14+
15+
return value.compareTo(ScaledBigDecimal.ZERO) > -1;
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package it.aboutbits.springboot.toolbox.validation.validator;
2+
3+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
4+
import jakarta.validation.ConstraintValidator;
5+
import jakarta.validation.ConstraintValidatorContext;
6+
import jakarta.validation.constraints.Positive;
7+
8+
public class PositiveScaledBigDecimalValidator implements ConstraintValidator<Positive, ScaledBigDecimal> {
9+
@Override
10+
public boolean isValid(ScaledBigDecimal value, ConstraintValidatorContext context) {
11+
if (value == null) {
12+
return true;
13+
}
14+
15+
return value.compareTo(ScaledBigDecimal.ZERO) > 0;
16+
}
17+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<validation-config
3+
xmlns="https://jakarta.ee/xml/ns/validation/configuration"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="https://jakarta.ee/xml/ns/validation/configuration
6+
https://jakarta.ee/xml/ns/validation/configuration/validation-configuration-3.0.xsd"
7+
version="3.0">
8+
<constraint-mapping>
9+
META-INF/validation/scaled-big-decimal.xml
10+
</constraint-mapping>
11+
</validation-config>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<constraint-mappings
2+
xmlns="https://jakarta.ee/xml/ns/validation/mapping"
3+
version="3.0">
4+
<constraint-definition annotation="jakarta.validation.constraints.Max">
5+
<validated-by include-existing-validators="true">
6+
<value>
7+
it.aboutbits.springboot.toolbox.validation.validator.MaxScaledBigDecimalValidator
8+
</value>
9+
</validated-by>
10+
</constraint-definition>
11+
<constraint-definition annotation="jakarta.validation.constraints.Min">
12+
<validated-by include-existing-validators="true">
13+
<value>
14+
it.aboutbits.springboot.toolbox.validation.validator.MinScaledBigDecimalValidator
15+
</value>
16+
</validated-by>
17+
</constraint-definition>
18+
<constraint-definition annotation="jakarta.validation.constraints.Negative">
19+
<validated-by include-existing-validators="true">
20+
<value>
21+
it.aboutbits.springboot.toolbox.validation.validator.NegativeScaledBigDecimalValidator
22+
</value>
23+
</validated-by>
24+
</constraint-definition>
25+
<constraint-definition annotation="jakarta.validation.constraints.NegativeOrZero">
26+
<validated-by include-existing-validators="true">
27+
<value>
28+
it.aboutbits.springboot.toolbox.validation.validator.NegativeOrZeroScaledBigDecimalValidator
29+
</value>
30+
</validated-by>
31+
</constraint-definition>
32+
<constraint-definition annotation="jakarta.validation.constraints.Positive">
33+
<validated-by include-existing-validators="true">
34+
<value>
35+
it.aboutbits.springboot.toolbox.validation.validator.PositiveScaledBigDecimalValidator
36+
</value>
37+
</validated-by>
38+
</constraint-definition>
39+
<constraint-definition annotation="jakarta.validation.constraints.PositiveOrZero">
40+
<validated-by include-existing-validators="true">
41+
<value>
42+
it.aboutbits.springboot.toolbox.validation.validator.PositiveOrZeroScaledBigDecimalValidator
43+
</value>
44+
</validated-by>
45+
</constraint-definition>
46+
</constraint-mappings>

0 commit comments

Comments
 (0)