01: package org.jreform.criteria;
02:
03: import org.jreform.Criterion;
04:
05: /**
06: * A collection of static methods to create commonly used criteria.
07: *
08: * @author armandino (at) gmail.com
09: */
10: public class Criteria {
11: private static final Email email = new Email();
12: private static final ZipCode zipCode = new ZipCode();
13: private static final PostcodeCA postcodeCA = new PostcodeCA();
14:
15: public static <T> Criterion<T> and(Criterion<T>... criteria) {
16: return new And<T>(criteria);
17: }
18:
19: public static <T> Criterion<T> or(Criterion<T>... criteria) {
20: return new Or<T>(criteria);
21: }
22:
23: public static <T> Criterion<T> accept(T... values) {
24: return new Accept<T>(values);
25: }
26:
27: public static AcceptString acceptString(String... values) {
28: return new AcceptString(values);
29: }
30:
31: public static <T extends Comparable<T>> Criterion<T> min(T min) {
32: return new Min<T>(min);
33: }
34:
35: public static <T extends Comparable<T>> Criterion<T> max(T max) {
36: return new Max<T>(max);
37: }
38:
39: public static <T extends Comparable<T>> Criterion<T> range(T min,
40: T max) {
41: return new Range<T>(min, max);
42: }
43:
44: public static Criterion<String> length(int min, int max) {
45: return new Length(min, max);
46: }
47:
48: public static Criterion<String> exactLength(int length) {
49: return new ExactLength(length);
50: }
51:
52: public static Criterion<String> minLength(int min) {
53: return new MinLength(min);
54: }
55:
56: public static Criterion<String> maxLength(int max) {
57: return new MaxLength(max);
58: }
59:
60: public static Criterion<String> regex(String pattern) {
61: return new Regex(pattern);
62: }
63:
64: public static Criterion<String> startsWith(String... prefix) {
65: return new StartsWith(prefix);
66: }
67:
68: public static Criterion<String> emailAddress() {
69: return email;
70: }
71:
72: public static Criterion<String> zipcode() {
73: return zipCode;
74: }
75:
76: public static Criterion<String> postcodeCA() {
77: return postcodeCA;
78: }
79:
80: }
|