01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: *
18: */
19:
20: package de.schlund.pfixcore.generator.prechecks;
21:
22: import org.apache.oro.text.PatternCacheLRU;
23: import org.apache.oro.text.perl.Perl5Util;
24:
25: import de.schlund.pfixcore.generator.IWrapperParamPreCheck;
26: import de.schlund.pfixcore.generator.SimpleCheck;
27: import de.schlund.pfixxml.RequestParam;
28: import de.schlund.util.statuscodes.StatusCode;
29: import de.schlund.util.statuscodes.StatusCodeLib;
30:
31: /**
32: * RegexpCheck.java
33: *
34: *
35: * Created: Fri Aug 17 10:38:12 2001
36: *
37: * @author <a href="mailto:jtl@schlund.de">Jens Lautenbacher</a>
38: *
39: *
40: */
41:
42: public class RegexpCheck extends SimpleCheck implements
43: IWrapperParamPreCheck {
44: private final static Perl5Util p5 = new Perl5Util(
45: new PatternCacheLRU(20));
46: private String regexp = null;
47: private StatusCode scode;
48:
49: public RegexpCheck() {
50: scode = StatusCodeLib.PFIXCORE_GENERATOR_PRECHECK_REGEXP_NO_MATCH;
51: }
52:
53: public void put_regexp(String regexp) {
54: this .regexp = regexp;
55: }
56:
57: public void put_scode_nomatch(String fqscode) {
58: scode = StatusCodeLib.getStatusCodeByName(fqscode);
59: }
60:
61: public void check(RequestParam[] value) {
62: reset();
63: for (int i = 0; i < value.length; i++) {
64: if (!p5.match(regexp, value[i].getValue())) {
65: addSCode(scode);
66: break;
67: }
68: }
69: }
70:
71: }// RegexpCheck
|