| IntKentta.java |
1 package kanta;
2 import fi.jyu.mit.ohj2.Mjonot;
3
4 /**
5 * Kenttä kokonaislukujen tallentamiseksi
6 * @author vesal
7 * @version 31.3.2008
8 *
9 */
10 public class IntKentta extends PerusKentta {
11 private int arvo;
12
13 /**
14 * Alustetaan kenttä kysymyksellä.
15 * @param kysymys joka näytetään kenttää kysyttäessä.
16 */
17 public IntKentta(String kysymys) { super(kysymys); }
18
19 /**
20 * @return kentän arvo kokonaislukuna
21 */
22 public int getValue() { return arvo; }
23
24 /**
25 * Asetetaan kentän arvo kokonaislukuna
26 * @param value asetettava kokonaislukuarvo
27 */
28 public void setValue(int value) { arvo = value; }
29
30 /**
31 * @return Kentän arvo merkkijonona
32 * @see kanta.PerusKentta#toString()
33 */
34 @Override
35 public String toString() { return ""+arvo; }
36
37
38
39 /**
40 * Asetetaan kentän arvo merkkijonosta. Jos jono
41 * kunnollinen, palautetaan null. Jos jono ei
42 * kunnollinen int-syöte, palautetaan virheilmoitus ja
43 * kentän alkuperäinen arvo jää voimaan.
44 * @param jono kentään asetettava arvo mekrkijonona
45 * @return null jos hyvä arvo, muuten virhe.
46 * @see kanta.PerusKentta#aseta(java.lang.String)
47 *
48 * @example
49 * <pre name="test">
50 * IntKentta kentta = new IntKentta("määrä");
51 * kentta.aseta("12") === null; kentta.getValue() === 12;
52 * kentta.aseta("k") === "Virhe: jono = \"k\""; kentta.getValue() === 12;
53 * </pre>
54 */
55 @Override
56 public String aseta(String jono) {
57 StringBuffer sb = new StringBuffer(jono);
58 try {
59 this.arvo = Mjonot.erotaEx(sb,' ',0);
60 return null;
61 }
62 catch (NumberFormatException ex) {
63 return "Virhe: " + ex.getMessage(); }
64 }
65
66 /**
67 * Palauttaa kentän tiedot veratiltavana merkkijonona
68 * @return vertailtava merkkijono kentästä
69 * @example
70 * <pre name="test">
71 * IntKentta kentta = new IntKentta("määrä");
72 * kentta.aseta("12"); kentta.getAvain() === " 12";
73 * kentta.aseta("1"); kentta.getAvain() === " 1";
74 * kentta.aseta("999"); kentta.getAvain() === " 999";
75 *
76 * </pre>
77 */
78 @Override
79 public String getAvain() {
80 return Mjonot.fmt(arvo, 10);
81 }
82
83 /**
84 * @return syväkopio oliosta
85 * @example
86 * <pre name="test">
87 * #THROWS CloneNotSupportedException
88 * IntKentta kentta = new IntKentta("määrä");
89 * kentta.aseta("12");
90 * IntKentta klooni = (IntKentta)kentta.clone();
91 * kentta.getValue() === klooni.getValue();
92 * kentta.aseta("13");
93 * kentta.getValue() === 13;
94 * klooni.getValue() === 12;
95 * </pre>
96 */
97 @Override
98 public Kentta clone() throws CloneNotSupportedException {
99 return super.clone();
100 }
101
102
103 }
104