Merge pull request #10 from JavaWebStack/dev · JavaWebStack/validator@ebe2ae2

@@ -2,8 +2,8 @@

2233

import org.javawebstack.abstractdata.AbstractArray;

44

import org.javawebstack.abstractdata.AbstractElement;

5-

import org.javawebstack.abstractdata.AbstractMapper;

65

import org.javawebstack.abstractdata.AbstractNull;

6+

import org.javawebstack.abstractdata.mapper.Mapper;

77

import org.javawebstack.abstractdata.mapper.MapperTypeSpec;

88

import 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

}

485152+

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

}

120125121-

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

}

128133129134

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

}

132137133-

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)) {