| SisaltaaTarkistaja.java |
1 package kanta;
2
3 /**
4 * Tarkistaja joka tarkistaa että jono sisältää vain valittuja merkkejä.
5 * Hyväksyy tyhjän jonon.
6 * @author vesal
7 *
8 */
9 public class SisaltaaTarkistaja implements Tarkistaja {
10
11 /** Numeroita vastaavat kirjaimet */
12 public static final String NUMEROT = "0123456789";
13
14 /** Desimaalilukuun käyvät kirjaimet */
15 public static final String DESIMAALINUMEROT = "0123456789.,";
16
17 /**
18 * Onko jonossa vain sallittuja merkkejä
19 * @param jono tutkittava jono
20 * @param sallitut merkit joita sallitaan
21 * @return true jos vain sallittuja, false muuten
22 * @example
23 * <pre name="test">
24 * onkoVain("123","12") === false;
25 * onkoVain("123","1234") === true;
26 * onkoVain("","1234") === true;
27 * </pre>
28 */
29 public static boolean onkoVain(String jono, String sallitut) {
30 for (int i=0; i<jono.length(); i++)
31 if ( sallitut.indexOf(jono.charAt(i)) < 0 ) return false;
32 return true;
33 }
34
35
36 private final String sallitut;
37
38
39 /**
40 * Luodaan tarkistaja joka hyväksyy sallitut merkit
41 * @param sallitut hyväksyttävät merkit
42 */
43 public SisaltaaTarkistaja(String sallitut) {
44 this.sallitut = sallitut;
45 }
46
47
48 /**
49 * Tarkistaa että jono sisältää vain valittuja numeroita
50 * @param jono tutkittava jono
51 * @return null jos vain valittujan merkkejä, muuten virheilmoitus
52 * @example
53 * <pre name="test">
54 * SisaltaaTarkistaja tar = new SisaltaaTarkistaja("123");
55 * tar.tarkista("12") === null;
56 * tar.tarkista("14") === "Saa olla vain merkkejä: 123";
57 * tar.tarkista("") === null;
58 * </pre>
59 */
60 @Override
61 public String tarkista(String jono) {
62 if ( onkoVain(jono, sallitut) ) return null;
63 return "Saa olla vain merkkejä: " + sallitut;
64 }
65
66 }
67