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