| DoubleKentta.java |
1 package kanta;
2 import fi.jyu.mit.ohj2.Mjonot;
3
4 /**
5 * Kenttä reaalilukuja varten.
6 * @author vesal
7 * @version 31.3.3008
8 *
9 */
10 public class DoubleKentta extends PerusKentta {
11 private double arvo;
12
13 /**
14 * Alustetaan kenttä kysymyksellä
15 * @param kysymys joka esitetään kentän kohdalla
16 */
17 public DoubleKentta(String kysymys) { super(kysymys,new DesimaaliTarkistaja()); }
18
19 /**
20 * @return Kentän arvo reaalilukuna
21 */
22 public double getValue() { return arvo; }
23
24 /**
25 * Asetetaan kentän arvo reaalilukuna
26 * @param value kentän uusi arvo reaalilukuna
27 */
28 public void setValue(double 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 * @param jono jono jaoka asetetaan. Vääristä jonoista
40 * arvoksi jää muuttumatta
41 * @see kanta.PerusKentta#aseta(java.lang.String)
42 * @example
43 * <pre name="test">
44 * DoubleKentta kentta = new DoubleKentta("summa");
45 * kentta.aseta("kissa") === "Ei desimaaliluku"; kentta.getValue() ~~~ 0.0;
46 * kentta.aseta("12.7") === null; kentta.getValue() ~~~ 12.7;
47 * kentta.aseta("32k7") === "Ei desimaaliluku"; kentta.getValue() ~~~ 12.7;
48 * </pre>
49 */
50 @Override
51 public String aseta(String jono) {
52 String virhe = null;
53 if ( tarkistaja != null ) virhe = tarkistaja.tarkista(jono);
54 if ( virhe != null ) return virhe;
55 this.arvo = Mjonot.erotaDouble(jono,0.0);
56 return null;
57 }
58
59 /**
60 * Palauttaa kentän tiedot veratiltavana merkkijonona
61 * @return vertailtava merkkijono kentästä
62 * @example
63 * <pre name="test">
64 * DoubleKentta kentta = new DoubleKentta("määrä");
65 * // 123456789012345678
66 * kentta.aseta("12"); kentta.getAvain() === " 12.000000";
67 * kentta.aseta("1"); kentta.getAvain() === " 1.000000";
68 * kentta.aseta("999"); kentta.getAvain() === " 999.000000";
69 *
70 * </pre>
71 */
72 @Override
73 public String getAvain() {
74 return Mjonot.fmt(arvo, 18,6);
75 }
76
77 }
78