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  
13  
14      /**
15       * Luodaan tarkistaja joka hyväksyy sallitut merkit
16       * @param regexp hyväksyttävät merkit
17       */
18      public RegExpTarkistaja(String regexp) {
19          this.regexp = regexp;
20      }
21  
22  
23      /**
24       * Tarkistaa että jono sisältää vain valittuja numeroita
25       * @param jono tutkittava jono
26       * @example
27       * <pre name="test">
28       *   RegExpTarkistaja tar = new RegExpTarkistaja("[1-4]*");
29       *   tar.tarkista("12") === null;
30       *   tar.tarkista("15") === "Ei vastaa maskia: [1-4]*";
31       *   tar.tarkista("")   === null;
32       * </pre>
33       */
34      @Override
35      public String tarkista(String jono) {
36          if ( jono.matches(regexp) ) return null;
37          return "Ei vastaa maskia: " + regexp;
38      }
39  
40  }
41