1   /**
2    * Hakuluokka merkkijonon hakuun. Hakee sanat, joiden pituus on vähintään
3    * hakuehtona annettava luku.
4    * @author Miika Nurminen
5    * @version 0.1 19.3.2003
6    */
7   public class PituusHakija implements SanaHakija {
8     private int ehto = 0;
9     
10    /** 
11     * Alustaa hakijan määärätylle hakuehdolle. Tarkistaa ehdon järkevyyden
12     * @param ehto Hakuehto
13     */
14    public PituusHakija(int ehto) {
15      alusta(ehto);
16    }
17    
18    /** 
19     * Alustaa hakijan määärätylle hakuehdolle. Tarkistaa ehdon järkevyyden
20     * @param ehto Hakuehto
21     */
22    public void alusta(String ehto) {
23      if (ehto==null) ehto="0"; // null: "mikä tahansa"
24      alusta(Integer.parseInt(ehto));
25    }
26    
27    public void alusta(int ehto) {
28      if (this.ehto<0)
29        throw new IllegalArgumentException("Virheellinen hakuehto!");
30      this.ehto = ehto;
31    }
32    
33    /** 
34     * Tutkii, täsmääkö sana edellä alustetun hakuehdon kanssa
35     * @param sana Sana, johon hakuehtoa sovelletaan
36     * @return jos sana täsmää hakuehtoon, palauttaa true:n
37     */
38    public boolean hae(String sana) {
39      return (sana.length()>this.ehto);
40    }
41    
42    /**
43     * Palauttaa hakuehton merkkijonona
44     * @return hakuehto merkkijonona
45     */
46    public String toString() {
47      return Integer.toString(this.ehto);
48    }
49  }
50