Skip to content

Commit 4639125

Browse files
committed
Added Validation roule for double values
1 parent 4beb22a commit 4639125

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

src/main/java/org/javawebstack/validator/Validator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public class Validator {
4747
registerRuleType("uuid", UUIDRule.Validator.class, UUIDRule.class);
4848
}
4949

50+
private final Map<String[], ValidationConfig> rules = new HashMap<>();
51+
5052
public static void registerRuleType(String name, Class<? extends ValidationRule> type, Class<? extends Annotation> annotationClass) {
5153
if (!ruleAnnotationClasses.containsKey(type) && annotationClass != null)
5254
ruleAnnotationClasses.put(type, annotationClass);
@@ -131,8 +133,6 @@ public static <T> T map(ValidationContext context, Class<T> type, AbstractElemen
131133
return map(context, type, element, new AbstractMapper());
132134
}
133135

134-
private final Map<String[], ValidationConfig> rules = new HashMap<>();
135-
136136
public Validator rule(String[] key, ValidationRule... rules) {
137137
return rule(key, Arrays.asList(rules));
138138
}
@@ -322,7 +322,7 @@ private static Map<String[], ValidationConfig> getClassRules(Field field, Class<
322322
return rules;
323323
}
324324
if (type.equals(Double.class) || type.equals(Float.class)) {
325-
rules.put(new String[0], new ValidationConfig(field, Collections.singletonList(new NumericRule.Validator())));
325+
rules.put(new String[0], new ValidationConfig(field, Collections.singletonList(new DoubleRule.Validator(Double.MIN_VALUE, Double.MAX_VALUE))));
326326
return rules;
327327
}
328328
if (type.equals(UUID.class)) {

src/main/java/org/javawebstack/validator/rule/DoubleRule.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
import org.javawebstack.abstractdata.AbstractElement;
44
import org.javawebstack.validator.ValidationContext;
55

6+
import java.lang.annotation.ElementType;
7+
import java.lang.annotation.Retention;
8+
import java.lang.annotation.RetentionPolicy;
9+
import java.lang.annotation.Target;
610
import java.lang.reflect.Field;
711

12+
@Target(ElementType.FIELD)
13+
@Retention(RetentionPolicy.RUNTIME)
814
public @interface DoubleRule {
915

1016
double min() default Double.MIN_VALUE;

src/test/java/test/org/javawebstack/validator/DoubleRuleTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public void testSimple() {
2222
public void testEdgeCases() {
2323
Validator validator = Validator.getValidator(EdgeTest.class);
2424
EdgeTest test = new EdgeTest();
25-
test.value = "9.9";
25+
test.value = 9.9;
2626
assertFalse(validator.validate(new ValidationContext(), new AbstractMapper().toAbstract(test)).isValid());
27-
test.value = "10.1";
27+
test.value = 10.1;
2828
assertTrue(validator.validate(new ValidationContext(), new AbstractMapper().toAbstract(test)).isValid());
2929
}
3030

@@ -35,6 +35,6 @@ private class SimpleTest {
3535

3636
private class EdgeTest {
3737
@DoubleRule(min = 10)
38-
String value;
38+
Double value;
3939
}
4040
}

0 commit comments

Comments
 (0)