1   package kanta;
2   
3   /**
4    * Kenttä hetuja varten
5    * 
6    * @author vesal
7    * 
8    * @example
9    * <pre name="testJonoKentta">
10   *  HetuKentta kentta = new HetuKentta("hetu",new HetuTarkistus());
11   *  kentta.toString()           === "";
12   *  kentta.aseta("kissa")       === "Hetu liian lyhyt"
13   *  kentta.toString()           === ""
14   *  kentta.aseta("010203-111L") === null
15   *  kentta.getAvain()           === "030201-111L"
16   *  kentta.getKysymys()         === "hetu"
17   *  
18   * </pre>
19   *
20   */
21  public class HetuKentta extends JonoKentta {
22  
23      /**
24       * 
25       * @param kysymys kentästä esitettävä kysymys
26       */
27      public HetuKentta(String kysymys) { super(kysymys); }
28  
29      /**
30       * 
31       * @param kysymys kentästä esitettävä kysymys
32       * @param tarkistaja olio joka tarkastaa kentän
33       */
34      public HetuKentta(String kysymys,Tarkistaja tarkistaja) {
35          super(kysymys,tarkistaja);
36      }
37  
38  
39      /** 
40       * @return avain
41       * @see kanta.PerusKentta#getAvain()
42       */
43      @Override
44      public String getAvain() {
45          StringBuffer sb = new StringBuffer(toString());
46          if ( sb.length() < 6 ) return sb.toString(); // TODO mitä palautetaan
47          char c = sb.charAt(4);
48          sb.setCharAt(4,sb.charAt(0));
49          sb.setCharAt(0,c);
50          c = sb.charAt(5);
51          sb.setCharAt(5,sb.charAt(1));
52          sb.setCharAt(1,c);
53          return sb.toString();  // pitäisi siirtää - jonon alkuun
54          // ja järkätä + < - < A
55      }
56  }
57