Skip to content

Commit

Permalink
extract meta constants
Browse files Browse the repository at this point in the history
  • Loading branch information
tminglei committed Apr 21, 2017
1 parent 16ee9e1 commit 4c0bd1e
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 39 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ To use `form-binder-java`, pls add the dependency to your `maven` project file:
<dependency>
<groupId>com.github.tminglei</groupId>
<artifactId>form-binder-java</artifactId>
<version>0.13.2</version>
<version>0.13.3</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>com.github.tminglei</groupId>
<artifactId>form-binder-java</artifactId>
<version>0.13.2</version>
<version>0.13.3</version>
<packaging>jar</packaging>

<name>form-binder-java</name>
Expand Down
47 changes: 47 additions & 0 deletions src/main/java/com/github/tminglei/bind/Const.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.github.tminglei.bind;

/**
* Created by minglei on 4/21/17.
*/
public interface Const {
///--- constraint
String CONSTRAINT_REQUIRED = "required";
String CONSTRAINT_LENGTH = "length";
String CONSTRAINT_MAX_LENGTH = "maxLength";
String CONSTRAINT_MIN_LENGTH = "minLength";
String CONSTRAINT_ONE_OF = "oneOf";
String CONSTRAINT_EMAIL = "email";
String CONSTRAINT_PATTERN = "pattern";
String CONSTRAINT_PATTERN_NOT = "patternNot";
String CONSTRAINT_INDEX_IN_KEYS = "indexInKeys";

String EX_CONSTRAINT_MIN = "min";
String EX_CONSTRAINT_MAX = "max";

///--- mapping
String MAPPING_STRING = "string";
String MAPPING_BOOLEAN = "boolean";
String MAPPING_INT = "int";
String MAPPING_LONG = "long";
String MAPPING_DOUBLE = "double";
String MAPPING_FLOAT = "float";
String MAPPING_BIG_DECIMAL = "bigDecimal";
String MAPPING_BIG_INTEGER = "bitInteger";
String MAPPING_UUID = "uuid";
String MAPPING_DATE = "date";
String MAPPING_TIME = "time";
String MAPPING_DATE_TIME = "datetime";

///--- processor
String PRE_PROCESSOR_TRIM = "trim";
String PRE_PROCESSOR_OMIT = "omit";
String PRE_PROCESSOR_OMIT_LEFT = "omitLeft";
String PRE_PROCESSOR_OMIT_RIGHT = "omitRight";
String PRE_PROCESSOR_OMIT_REDUNDANT = "omitRedundant";
String PRE_PROCESSOR_OMIT_MATCHED = "omitMatched";
String PRE_PROCESSOR_REPLACE_MATCHED = "replaceMatched";
String PRE_PROCESSOR_EXPAND_JSON = "expandJson";
String PRE_PROCESSOR_EXPAND_JSON_KEYS = "expandJsonKeys";
String PRE_PROCESSOR_EXPAND_LIST_KEYS = "expandListKeys";
String PRE_PROCESSOR_CHANGE_PREFIX = "changePrefix";
}
24 changes: 12 additions & 12 deletions src/main/java/com/github/tminglei/bind/Constraints.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
/**
* pre-defined constraints/extra-constraints
*/
public class Constraints {
public class Constraints implements Const {
private static final Logger logger = LoggerFactory.getLogger(Constraints.class);

private Constraints() {}
Expand Down Expand Up @@ -53,7 +53,7 @@ public static Constraint required(String message) {

return Arrays.asList(entry(name, errMessage));
} else return Collections.emptyList();
}, mkExtensionMeta("required"));
}, mkExtensionMeta(CONSTRAINT_REQUIRED));
}

public static Constraint maxLength(int length) {
Expand All @@ -75,7 +75,7 @@ public static Constraint maxLength(int length, String message, boolean withIt) {
String msgTemplate = message != null ? message : messages.get("error.maxlength");
return String.format(msgTemplate, vString, length, withIt);
} else return null;
}, mkExtensionMeta("maxLength", length));
}, mkExtensionMeta(CONSTRAINT_MAX_LENGTH, length));
}

public static Constraint minLength(int length) {
Expand All @@ -97,7 +97,7 @@ public static Constraint minLength(int length, String message, boolean withIt) {
String msgTemplate = message != null ? message : messages.get("error.minlength");
return String.format(msgTemplate, vString, length, withIt);
} else return null;
}, mkExtensionMeta("minLength", length));
}, mkExtensionMeta(CONSTRAINT_MIN_LENGTH, length));
}

public static Constraint length(int length) {
Expand All @@ -112,7 +112,7 @@ public static Constraint length(int length, String message) {
String msgTemplate = message != null ? message : messages.get("error.length");
return String.format(msgTemplate, vString, length);
} else return null;
}, mkExtensionMeta("length", length));
}, mkExtensionMeta(CONSTRAINT_LENGTH, length));
}

public static Constraint oneOf(Collection<String> values) {
Expand All @@ -127,7 +127,7 @@ public static Constraint oneOf(Collection<String> values, String message) {
String msgTemplate = message != null ? message : messages.get("error.oneof");
return String.format(msgTemplate, vString, values);
} else return null;
}, mkExtensionMeta("oneOf", values));
}, mkExtensionMeta(CONSTRAINT_ONE_OF, values));
}

public static Constraint email() {
Expand All @@ -142,7 +142,7 @@ public static Constraint email(String message) {
String msgTemplate = message != null ? message : messages.get("error.email");
return String.format(msgTemplate, vString, PATTERN_EMAIL);
} else return null;
}, mkExtensionMeta("email"));
}, mkExtensionMeta(CONSTRAINT_EMAIL));
}

public static Constraint pattern(String pattern) {
Expand All @@ -157,7 +157,7 @@ public static Constraint pattern(String pattern, String message) {
String msgTemplate = message != null ? message : messages.get("error.pattern");
return String.format(msgTemplate, vString, pattern);
} else return null;
}, mkExtensionMeta("pattern", pattern));
}, mkExtensionMeta(CONSTRAINT_PATTERN, pattern));
}

public static Constraint patternNot(String pattern) {
Expand All @@ -172,7 +172,7 @@ public static Constraint patternNot(String pattern, String message) {
String msgTemplate = message != null ? message : messages.get("error.patternnot");
return String.format(msgTemplate, vString, pattern);
} else return null;
}, mkExtensionMeta("patternNot", pattern));
}, mkExtensionMeta(CONSTRAINT_PATTERN_NOT, pattern));
}

public static Constraint indexInKeys() {
Expand All @@ -194,7 +194,7 @@ public static Constraint indexInKeys(String message) {
})
.filter(err -> err != null)
.collect(Collectors.toList());
}, mkExtensionMeta("indexInKeys"));
}, mkExtensionMeta(CONSTRAINT_INDEX_IN_KEYS));
}

/////////////////////////////////// pre-defined extra constraints //////////////////////
Expand Down Expand Up @@ -223,7 +223,7 @@ public static Constraint indexInKeys(String message) {
return Arrays.asList(String.format(msgTemplate, value, minVal, withIt));
} else return Collections.emptyList();
}, new ExtensionMeta(
"min",
EX_CONSTRAINT_MIN,
"min(" + minVal + " " + (withIt ? "w/" : "w/o") + " boundary)",
Arrays.asList(minVal, withIt)));
}
Expand Down Expand Up @@ -252,7 +252,7 @@ public static Constraint indexInKeys(String message) {
return Arrays.asList(String.format(msgTemplate, value, maxVal, withIt));
} else return Collections.emptyList();
}, new ExtensionMeta(
"max",
EX_CONSTRAINT_MAX,
"max(" + maxVal + " " + (withIt ? "w/" : "w/o") + " boundary)",
Arrays.asList(maxVal, withIt)));
}
Expand Down
26 changes: 13 additions & 13 deletions src/main/java/com/github/tminglei/bind/Mappings.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
/**
* pre-defined mappings
*/
public class Mappings {
public class Mappings implements Const {
private static final Logger logger = LoggerFactory.getLogger(Mappings.class);

private Mappings() {}
Expand All @@ -35,7 +35,7 @@ public static Mapping<String> text(Constraint... constraints) {
return new FieldMapping(
InputMode.SINGLE,
mkSimpleConverter(Function.identity()),
new MappingMeta("string", String.class)
new MappingMeta(MAPPING_STRING, String.class)
).constraint(constraints);
}

Expand All @@ -49,7 +49,7 @@ public static Mapping<Boolean> bool(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? false : Boolean.parseBoolean(s)
), new MappingMeta("boolean", Boolean.class)
), new MappingMeta(MAPPING_BOOLEAN, Boolean.class)
).constraint(checking(Boolean::parseBoolean, "error.boolean", true))
.constraint(constraints);
}
Expand All @@ -64,7 +64,7 @@ public static Mapping<Integer> intv(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? 0 : Integer.parseInt(s)
), new MappingMeta("int", Integer.class)
), new MappingMeta(MAPPING_INT, Integer.class)
).constraint(checking(Integer::parseInt, "error.number", true))
.constraint(constraints);
}
Expand All @@ -79,7 +79,7 @@ public static Mapping<Double> doublev(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? 0.0d : Double.parseDouble(s)
), new MappingMeta("double", Double.class)
), new MappingMeta(MAPPING_DOUBLE, Double.class)
).constraint(checking(Double::parseDouble, "error.double", true))
.constraint(constraints);
}
Expand All @@ -94,7 +94,7 @@ public static Mapping<Float> floatv(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? 0.0f : Float.parseFloat(s)
), new MappingMeta("float", Float.class)
), new MappingMeta(MAPPING_FLOAT, Float.class)
).constraint(checking(Float::parseFloat, "error.float", true))
.constraint(constraints);
}
Expand All @@ -109,7 +109,7 @@ public static Mapping<Long> longv(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? 0l : Long.parseLong(s)
), new MappingMeta("long", Long.class)
), new MappingMeta(MAPPING_LONG, Long.class)
).constraint(checking(Long::parseLong, "error.long", true))
.constraint(constraints);
}
Expand All @@ -124,7 +124,7 @@ public static Mapping<BigDecimal> bigDecimal(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? BigDecimal.ZERO : new BigDecimal(s)
), new MappingMeta("bigDecimal", BigDecimal.class)
), new MappingMeta(MAPPING_BIG_DECIMAL, BigDecimal.class)
).constraint(checking(BigDecimal::new, "error.bigdecimal", true))
.constraint(constraints);
}
Expand All @@ -139,7 +139,7 @@ public static Mapping<BigInteger> bigInt(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? BigInteger.ZERO : new BigInteger(s)
), new MappingMeta("bitInteger", BigInteger.class)
), new MappingMeta(MAPPING_BIG_INTEGER, BigInteger.class)
).constraint(checking(BigInteger::new, "error.bigint", true))
.constraint(constraints);
}
Expand All @@ -154,7 +154,7 @@ public static Mapping<UUID> uuid(Constraint... constraints) {
InputMode.SINGLE,
mkSimpleConverter(s ->
isEmptyStr(s) ? null : UUID.fromString(s)
), new MappingMeta("uuid", UUID.class)
), new MappingMeta(MAPPING_UUID, UUID.class)
).constraint(checking(UUID::fromString, "error.uuid", true))
.constraint(constraints);
}
Expand All @@ -179,7 +179,7 @@ else if (s.matches("^[\\d]+$")) {
} else {
return LocalDate.parse(s, formatter);
}
}), new MappingMeta("date", LocalDate.class)
}), new MappingMeta(MAPPING_DATE, LocalDate.class)
).constraint(anyPassed(
checking(s -> new Date(Long.parseLong(s)), "'%s' not a date long", false),
checking(formatter::parse, "error.pattern", true, pattern)
Expand All @@ -206,7 +206,7 @@ else if (s.matches("^[\\d]+$")) {
} else {
return LocalDateTime.parse(s, formatter);
}
}), new MappingMeta("datetime", LocalDateTime.class)
}), new MappingMeta(MAPPING_DATE_TIME, LocalDateTime.class)
).constraint(anyPassed(
checking(s -> new Date(Long.parseLong(s)), "'%s' not a date long", false),
checking(formatter::parse, "error.pattern", true, pattern)
Expand All @@ -233,7 +233,7 @@ else if (s.matches("^[\\d]+$")) {
} else {
return LocalTime.parse(s, formatter);
}
}), new MappingMeta("time", LocalTime.class)
}), new MappingMeta(MAPPING_TIME, LocalTime.class)
).constraint(anyPassed(
checking(s -> new Date(Long.parseLong(s)), "'%s' not a date long", false),
checking(formatter::parse, "error.pattern", true, pattern)
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/com/github/tminglei/bind/Processors.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/**
* pre-defined pre-processors/err-processors
*/
public class Processors {
public class Processors implements Const {
private static final Logger logger = LoggerFactory.getLogger(Processors.class);

private Processors() {}
Expand All @@ -43,27 +43,27 @@ public static PreProcessor trim() {
Map.Entry::getKey,
Map.Entry::getValue
));
}, mkExtensionMeta("trim"));
}, mkExtensionMeta(PRE_PROCESSOR_TRIM));
}

public static PreProcessor omit(String str) {
return replaceMatched(Pattern.quote(str), "", mkExtensionMeta("omit", str));
return replaceMatched(Pattern.quote(str), "", mkExtensionMeta(PRE_PROCESSOR_OMIT, str));
}

public static PreProcessor omitLeft(String str) {
return replaceMatched("^" + Pattern.quote(str), "", mkExtensionMeta("omitLeft", str));
return replaceMatched("^" + Pattern.quote(str), "", mkExtensionMeta(PRE_PROCESSOR_OMIT_LEFT, str));
}

public static PreProcessor omitRight(String str) {
return replaceMatched(Pattern.quote(str) + "$", "", mkExtensionMeta("omitRight", str));
return replaceMatched(Pattern.quote(str) + "$", "", mkExtensionMeta(PRE_PROCESSOR_OMIT_RIGHT, str));
}

public static PreProcessor omitRedundant(String str) {
return replaceMatched("["+Pattern.quote(str)+"]+", str, mkExtensionMeta("omitRedundant", str));
return replaceMatched("["+Pattern.quote(str)+"]+", str, mkExtensionMeta(PRE_PROCESSOR_OMIT_REDUNDANT, str));
}

public static PreProcessor omitMatched(String pattern) {
return replaceMatched(pattern, "", mkExtensionMeta("omitMatched", pattern));
return replaceMatched(pattern, "", mkExtensionMeta(PRE_PROCESSOR_OMIT_MATCHED, pattern));
}

public static PreProcessor replaceMatched(String pattern, String replacement) {
Expand All @@ -88,7 +88,7 @@ static PreProcessor replaceMatched(String pattern, String replacement, Extension
Map.Entry::getValue
));
}, meta != null ? meta : new ExtensionMeta(
"replaceMatched",
PRE_PROCESSOR_REPLACE_MATCHED,
"replace(matched '" + pattern + "' with '" + replacement + "')",
Arrays.asList(pattern, replacement)));
}
Expand Down Expand Up @@ -122,7 +122,7 @@ public static PreProcessor expandJson(String prefix) {
} catch (IOException e) {
throw new IllegalArgumentException("Illegal json string at: " + thePrefix + " - \n" + jsonStr, e);
}
}, mkExtensionMeta("expandJson", prefix));
}, mkExtensionMeta(PRE_PROCESSOR_EXPAND_JSON, prefix));
}

/**
Expand All @@ -139,7 +139,7 @@ public static PreProcessor expandJsonKeys(String prefix) {
Map<String, String> data1 = expandJson(prefix).apply(prefix1, data, options);
Map<String, String> data2 = expandListKeys(prefix).apply(prefix1, data1, options);
return data2;
}, mkExtensionMeta("expandJsonKeys", prefix));
}, mkExtensionMeta(PRE_PROCESSOR_EXPAND_JSON_KEYS, prefix));
}

/**
Expand All @@ -165,7 +165,7 @@ public static PreProcessor expandListKeys(String prefix) {
Map.Entry::getKey,
Map.Entry::getValue
));
}, mkExtensionMeta("expandListKeys", prefix));
}, mkExtensionMeta(PRE_PROCESSOR_EXPAND_LIST_KEYS, prefix));
}

/**
Expand Down Expand Up @@ -196,7 +196,7 @@ public static PreProcessor changePrefix(String from, String to) {
Map.Entry::getKey,
Map.Entry::getValue
));
}, new ExtensionMeta("changePrefix",
}, new ExtensionMeta(PRE_PROCESSOR_CHANGE_PREFIX,
"changePrefix(from '" +from+ "' to '" +to+ "')",
Arrays.asList(from, to)));
}
Expand Down

0 comments on commit 4c0bd1e

Please sign in to comment.