1   package kanta;
2   
3   /**
4    * Peruskenttä joka implementoi kysymyksen käsittelyn
5    * ja tarkistajan käsittelyn.
6    *
7    * @author Vesa Lappalainen
8    * @version 1.0, 22.02.2003
9    * @version 1.3, 02.04.2003
10   */
11  public abstract class PerusKentta implements Kentta { // NOPMD
12      private final String kysymys;
13  
14      /**
15       * Yleisen tarkistajan viite
16       */
17      protected Tarkistaja tarkistaja = null;
18  
19      /**
20       * Alustetaan kenttä kysymyksen tiedoilla.
21       * @param kysymys joka esitetään kenttää kysyttäessä.
22       */
23      public PerusKentta(String kysymys)  { this.kysymys = kysymys; }
24  
25      /**
26       * Alustetaan kysymyksellä ja tarkistajalla.
27       * @param kysymys joka esitetään kenttää kysyttäessä.
28       * @param tarkistaja tarkistajaluokka joka tarkistaa syötän oikeellisuuden
29       */
30      public PerusKentta(String kysymys,Tarkistaja tarkistaja) {
31          this.kysymys = kysymys;
32          this.tarkistaja = tarkistaja;
33      }
34  
35      /**
36       * @return kentän arvo merkkijonona
37       * @see kanta.Kentta#toString()
38       */
39      @Override
40      public abstract String toString();
41  
42      /**
43       * @return Kenttää vastaava kysymys
44       * @see kanta.Kentta#getKysymys()
45       */
46      @Override
47      public String getKysymys() { // NOPMD (jostain syystä luulee abstraktiksi metodiksi)
48          return kysymys;
49      }
50  
51      /**
52       * @param jono josta otetaan kentän arvo
53       * @see kanta.Kentta#aseta(java.lang.String)
54       */
55      @Override
56      public abstract String aseta(String jono);
57  
58      /**
59       * Palauttaa kentän tiedot veratiltavana merkkijonona
60       * @return vertailtava merkkijono kentästä
61       */
62      @Override
63      public String getAvain() { // NOPMD (jostain syystä luulee abstraktiksi metodiksi)
64          return toString().toUpperCase();
65      }
66  
67  
68      /**
69       * @return syväkopio oliosta
70       */
71      @Override
72      public Kentta clone() throws CloneNotSupportedException {
73          return (Kentta)super.clone();
74      }
75  
76  
77  }
78  
79  
80  
81  
82  
83  
84