22
33import org .javawebstack .abstractdata .AbstractArray ;
44import org .javawebstack .abstractdata .AbstractElement ;
5- import org .javawebstack .abstractdata .AbstractMapper ;
65import org .javawebstack .abstractdata .AbstractNull ;
6+ import org .javawebstack .abstractdata .mapper .Mapper ;
77import org .javawebstack .abstractdata .mapper .MapperTypeSpec ;
88import org .javawebstack .validator .rule .*;
99
@@ -33,6 +33,7 @@ public class Validator {
3333 registerRuleType ("ipv6" , IPv6AddressRule .Validator .class , IPv6AddressRule .class );
3434 registerRuleType ("int" , IntegerRule .Validator .class , IntegerRule .class );
3535 registerRuleType ("integer" , IntegerRule .Validator .class , IntegerRule .class );
36+ registerRuleType ("double" , DoubleRule .Validator .class , DoubleRule .class );
3637 registerRuleType ("numeric" , NumericRule .Validator .class , NumericRule .class );
3738 registerRuleType ("num" , NumericRule .Validator .class , NumericRule .class );
3839 registerRuleType ("date" , DateRule .Validator .class , DateRule .class );
@@ -44,8 +45,12 @@ public class Validator {
4445 registerRuleType ("email" , EmailRule .Validator .class , EmailRule .class );
4546 registerRuleType ("regex" , RegexRule .Validator .class , RegexRule .class );
4647 registerRuleType ("uuid" , UUIDRule .Validator .class , UUIDRule .class );
48+ registerRuleType ("charset" , CharsetRule .Validator .class , CharsetRule .class );
49+ registerRuleType ("word_count" , WordCountRule .Validator .class , WordCountRule .class );
4750 }
4851
52+ private final Map <String [], ValidationConfig > rules = new HashMap <>();
53+
4954 public static void registerRuleType (String name , Class <? extends ValidationRule > type , Class <? extends Annotation > annotationClass ) {
5055 if (!ruleAnnotationClasses .containsKey (type ) && annotationClass != null )
5156 ruleAnnotationClasses .put (type , annotationClass );
@@ -118,20 +123,18 @@ public static Validator getValidator(Class<?> type) {
118123 return validator ;
119124 }
120125
121- public static <T > T map (ValidationContext context , Class <T > type , AbstractElement element , AbstractMapper mapper ) {
126+ public static <T > T map (ValidationContext context , Class <T > type , AbstractElement element , Mapper mapper ) {
122127 Validator validator = getValidator (type );
123128 ValidationResult result = validator .validate (context , element );
124129 if (!result .isValid ())
125130 throw new ValidationException (result );
126- return mapper .fromAbstract (element , type );
131+ return mapper .map (element , type );
127132 }
128133
129134 public static <T > T map (ValidationContext context , Class <T > type , AbstractElement element ) {
130- return map (context , type , element , new AbstractMapper ());
135+ return map (context , type , element , new Mapper ());
131136 }
132137
133- private final Map <String [], ValidationConfig > rules = new HashMap <>();
134-
135138 public Validator rule (String [] key , ValidationRule ... rules ) {
136139 return rule (key , Arrays .asList (rules ));
137140 }
@@ -321,7 +324,7 @@ private static Map<String[], ValidationConfig> getClassRules(Field field, Class<
321324 return rules ;
322325 }
323326 if (type .equals (Double .class ) || type .equals (Float .class )) {
324- rules .put (new String [0 ], new ValidationConfig (field , Collections .singletonList (new NumericRule .Validator ())));
327+ rules .put (new String [0 ], new ValidationConfig (field , Collections .singletonList (new DoubleRule .Validator (Double . MIN_VALUE , Double . MAX_VALUE ))));
325328 return rules ;
326329 }
327330 if (type .equals (UUID .class )) {
0 commit comments