| Kentta.java |
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 * @example
14 * <pre name="test">
15 * IntKentta kentta = new IntKentta("määrä");
16 * kentta.aseta("12") === null;
17 * kentta.toString() === "12";
18 * </pre>
19 */
20 @Override
21 String toString();
22
23 /**
24 * Palauttaa kentään liittyvän kysymyksen.
25 * @return kenttän liittyvä kysymys.
26 * @example
27 * <pre name="test">
28 * IntKentta kentta = new IntKentta("määrä");
29 * kentta.getKysymys() === "määrä";
30 * </pre>
31 */
32 String getKysymys();
33
34 /**
35 * Asettaa kentän sisällön ottamalla tiedot
36 * merkkijonosta.
37 * @param jono jono josta tiedot otetaan.
38 * @return null jos sisältö on hyvä, muuten merkkijonona virhetieto
39 * @example
40 * <pre name="test">
41 * IntKentta kentta = new IntKentta("määrä");
42 * kentta.aseta("12") === null; kentta.getValue() === 12;
43 * kentta.aseta("k") === "Ei kokonaisluku (k)"; kentta.getValue() === 12;
44 * </pre>
45 */
46 String aseta(String jono);
47
48
49 /**
50 * Palauttaa kentän tiedot veratiltavana merkkijonona
51 * @return vertailtava merkkijono kentästä
52 * @example
53 * <pre name="test">
54 * IntKentta k1 = new IntKentta("määrä");
55 * IntKentta k2 = new IntKentta("määrä");
56 * k1.aseta("12"); k2.aseta("5");
57 * k1.getAvain().compareTo(k2.getAvain()) > 0 === true;
58 * </pre>
59 */
60 String getAvain();
61
62
63 /**
64 * @return syväkopio kentästä, tehtävä jokaiseen luokkaa toimivaksi
65 * @throws CloneNotSupportedException
66 * @example
67 * <pre name="test">
68 * #THROWS CloneNotSupportedException
69 * IntKentta k1 = new IntKentta("määrä");
70 * k1.aseta("12");
71 * IntKentta k2 = k1.clone();
72 * k1.toString() === k2.toString();
73 * k1.aseta("5");
74 * k1.toString() == k2.toString() === false;
75 * </pre>
76 */
77 Kentta clone() throws CloneNotSupportedException ;
78
79
80 /**
81 * @return vaakasuuntainen sijainti kentälle
82 * @example
83 * <pre name="test">
84 * #import javax.swing.SwingConstants;
85 * IntKentta k1 = new IntKentta("määrä");
86 * k1.getSijainti() === SwingConstants.RIGHT;
87 * </pre>
88 */
89 int getSijainti();
90
91 }
92