Class | Line # | Actions | |||
---|---|---|---|---|---|
Validator | 17 | 4 | 4 |
1 | // | |
2 | // This software is now distributed according to | |
3 | // the Lesser Gnu Public License. Please see | |
4 | // http://www.gnu.org/copyleft/lesser.txt for | |
5 | // the details. | |
6 | // -- Happy Computing! | |
7 | // | |
8 | package com.stevesoft.pat; | |
9 | ||
10 | /** | |
11 | * This class makes it easy to create your own patterns and integrate them into | |
12 | * Regex. For more detail, see the example file | |
13 | * <a href="http://javaregex.com/code/deriv2.java.html">deriv2.java</a> or | |
14 | * <a href="http://javaregex.com/code/deriv3.java.html">deriv3.java</a>. | |
15 | */ | |
16 | ||
17 | public class Validator | |
18 | { | |
19 | String argsave = null; | |
20 | ||
21 | String pattern = "."; | |
22 | ||
23 | /** | |
24 | * This method does extra checking on a matched section of a String beginning | |
25 | * at position start and ending at end. The idea is that you can do extra | |
26 | * checking with this that you don't know how to do with a standard Regex. | |
27 | * | |
28 | * If this method is successful, it returns the location of the end of this | |
29 | * pattern element -- that may be the value end provided or some other value. | |
30 | * A negative value signifies that a match failure. | |
31 | * | |
32 | * By default, this method just returns end and thus does nothing. | |
33 | * | |
34 | * @see com.stevesoft.pat.Regex#define(java.lang.String,java.lang.String,com.stevesoft.pat.Validator) | |
35 | */ | |
36 | 0 | public int validate(StringLike src, int start, int end) |
37 | { | |
38 | 0 | return end; |
39 | } | |
40 | ||
41 | /* | |
42 | * This method allows you to modify the behavior of this validator by making a | |
43 | * new Validator object. If a Validator named "foo" is defined, then the | |
44 | * pattern "{??foo:bar}" will cause Regex to first get the Validator given to | |
45 | * Regex.define and then to call its arg method with the string "bar". If this | |
46 | * method returns a null (the default) you get the same behavior as the | |
47 | * pattern "{??foo}" would supply. | |
48 | */ | |
49 | 0 | public Validator arg(String s) |
50 | { | |
51 | 0 | return null; |
52 | } | |
53 | ||
54 | /** | |
55 | * For optimization it is helpful, but not necessary, that you define the | |
56 | * minimum number of characters this validator will allow to match. To do this | |
57 | * return new patInt(number) where number is the smallest number of characters | |
58 | * that can match. | |
59 | */ | |
60 | 0 | public patInt minChars() |
61 | { | |
62 | 0 | return new patInt(0); |
63 | } | |
64 | ||
65 | /** | |
66 | * For optimization it is helpful, but not necessary, that you define the | |
67 | * maximum number of characters this validator will allow to match. To do this | |
68 | * either return new patInt(number), or new patInf() if an infinite number of | |
69 | * characters may match. | |
70 | */ | |
71 | 0 | public patInt maxChars() |
72 | { | |
73 | 0 | return new patInf(); |
74 | } | |
75 | } |