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