| RegExpTarkistaja.java |
1 package kanta;
2
3 /**
4 * Tarkistaja joka tarkistaa että jono vastaa regexpiä
5 * Hyväksyy tyhjän jonon.
6 * @author vesal
7 *
8 */
9 public class RegExpTarkistaja implements Tarkistaja {
10
11 private final String regexp;
12 private String viesti = null;
13
14
15 /**
16 * Luodaan tarkistaja joka hyväksyy sallitut merkit
17 * @param regexp hyväksyttävät merkit
18 */
19 public RegExpTarkistaja(String regexp) {
20 this(regexp,null);
21 }
22
23
24 /**
25 * Luodaan tarkistaja joka hyväksyy sallitut merkit
26 * @param regexp hyväksyttävät merkit
27 * @param viesti viesti joka näytetään jos jonon ehto ei täyty
28 */
29 public RegExpTarkistaja(String regexp, String viesti) {
30 this.regexp = regexp;
31 if ( viesti != null ) this.viesti = viesti;
32 else this.viesti = "Ei vastaa maskia: " + regexp;
33 }
34
35
36 /**
37 * Tarkistaa että jono sisältää vain valittuja numeroita
38 * @param jono tutkittava jono
39 * @example
40 * <pre name="test">
41 * RegExpTarkistaja tar = new RegExpTarkistaja("[1-4]*");
42 * tar.tarkista("12") === null;
43 * tar.tarkista("15") === "Ei vastaa maskia: [1-4]*";
44 * tar.tarkista("") === null;
45 * tar = new RegExpTarkistaja("[1-4]+","Vain numeroita 1-4");
46 * tar.tarkista("15") === "Vain numeroita 1-4";
47 * tar.tarkista("") === "Vain numeroita 1-4";
48 * tar.tarkista("1") === null;
49 * </pre>
50 */
51 @Override
52 public String tarkista(String jono) {
53 if ( jono.matches(regexp) ) return null;
54 return viesti;
55 }
56
57 }
58