1   package kanta;
2   
3   /**
4    * Rajapinta tietueen yhdelle kentälle.
5    * @author vesal
6    *
7    */
8   public interface Kentta extends Cloneable, Comparable<Kentta>{
9   
10      /**
11       * kentän arvo merkkijonona.
12       * @return kenttä merkkkijonona
13       */
14      @Override
15      String toString();
16  
17      /**
18       * Palauttaa kentään liittyvän kysymyksen.
19       * @return kenttän liittyvä kysymys.
20       */
21      String getKysymys();
22  
23      /**
24       * Asettaa kentän sisällön ottamalla tiedot
25       * merkkijonosta.
26       * @param jono jono josta tiedot otetaan.
27       * @return null jos sisältö on hyvä, muuten merkkijonona virhetieto
28       */
29      String aseta(String jono);
30  
31  
32      /**
33       * Palauttaa kentän tiedot veratiltavana merkkijonona
34       * @return vertailtava merkkijono kentästä
35       */
36      String getAvain();
37  
38  
39      /**
40       * @return syväkopio kentästä, tehtävä jokaiseen luokkaa toimivaksi
41       * @throws CloneNotSupportedException
42       */
43      Kentta clone() throws CloneNotSupportedException ;
44  
45      /**
46       * @return vaakasuuntainen sijainti kentälle
47       */
48      int getSijainti();
49      
50  }
51