Skip to content

Commit b17be33

Browse files
committed
add the following rules
- alpha - alpha_num - alpha_dash - email Co-author-by: Julian Gojani <julian@gojani.xyz>
1 parent c6ae79e commit b17be33

File tree

6 files changed

+94
-0
lines changed

6 files changed

+94
-0
lines changed

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
<version>5.4.2</version>
3333
<scope>test</scope>
3434
</dependency>
35+
<dependency>
36+
<groupId>com.sun.mail</groupId>
37+
<artifactId>javax.mail</artifactId>
38+
<version>1.6.2</version>
39+
</dependency>
3540
</dependencies>
3641

3742
<build>

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public class Validator {
3636
registerRuleType("date", DateRule.class);
3737
registerRuleType("array", ArrayRule.class);
3838
registerRuleType("list", ArrayRule.class);
39+
registerRuleType("alpha", AlphaRule.class);
40+
registerRuleType("alpha_num", AlphaNumRule.class);
41+
registerRuleType("alpha_dash", AlphaDashRule.class);
42+
registerRuleType("email", EmailRule.class);
3943
}
4044

4145
public static void registerRuleType(String name, Class<? extends ValidationRule> type){
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.javawebstack.validator.rule;
2+
3+
import org.javawebstack.abstractdata.AbstractElement;
4+
import org.javawebstack.validator.ValidationContext;
5+
6+
import java.lang.reflect.Field;
7+
8+
public class AlphaDashRule implements ValidationRule {
9+
@Override
10+
public String validate(ValidationContext context, Field field, AbstractElement value) {
11+
if (value == null)
12+
return null;
13+
14+
String pattern = "[A-Za-z0-9-_]*";
15+
if (!value.string().matches(pattern))
16+
return "Value must only contain alpha-numeric characters as well as dashes and underscores.";
17+
18+
return null;
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.javawebstack.validator.rule;
2+
3+
import org.javawebstack.abstractdata.AbstractElement;
4+
import org.javawebstack.validator.ValidationContext;
5+
6+
import java.lang.reflect.Field;
7+
8+
public class AlphaNumRule implements ValidationRule {
9+
@Override
10+
public String validate(ValidationContext context, Field field, AbstractElement value) {
11+
if (value == null)
12+
return null;
13+
14+
String pattern = "[A-Za-z0-9]*";
15+
if (!value.string().matches(pattern))
16+
return "Value must only contain alpha-numeric characters.";
17+
18+
return null;
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.javawebstack.validator.rule;
2+
3+
import org.javawebstack.abstractdata.AbstractElement;
4+
import org.javawebstack.validator.ValidationContext;
5+
6+
import java.lang.reflect.Field;
7+
8+
public class AlphaRule implements ValidationRule {
9+
@Override
10+
public String validate(ValidationContext context, Field field, AbstractElement value) {
11+
if (value == null)
12+
return null;
13+
14+
String pattern = "[A-Za-z]*";
15+
if (!value.string().matches(pattern))
16+
return "Value must only contain alphabetic characters.";
17+
18+
return null;
19+
}
20+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.javawebstack.validator.rule;
2+
3+
import org.javawebstack.abstractdata.AbstractElement;
4+
import org.javawebstack.validator.ValidationContext;
5+
6+
import javax.mail.internet.AddressException;
7+
import javax.mail.internet.InternetAddress;
8+
import java.lang.reflect.Field;
9+
10+
public class EmailRule implements ValidationRule {
11+
@Override
12+
public String validate(ValidationContext context, Field field, AbstractElement value) {
13+
if (value == null)
14+
return null;
15+
16+
try {
17+
InternetAddress emailAddr = new InternetAddress(value.string());
18+
emailAddr.validate();
19+
} catch (AddressException ex) {
20+
return "Value is not a valid email address";
21+
}
22+
23+
return null;
24+
}
25+
}

0 commit comments

Comments
 (0)