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