1   import java.io.*;
2   import fi.jyu.mit.ohj2.*;
3   /**
4    * Harrastus joka osaa mm. itse huolehtia tunnus_nro:staan.
5    *
6    * @author Vesa Lappalainen
7    * @version 1.0, 20.03.2003
8    */
9   public class Harrastus {
10    private int    tunnus_nro;
11    private int    jasen_id;
12    private String ala;
13    private int    aloitusvuosi;
14    private int    tuntia_viikossa;
15  
16    private static int seuraava_nro = 1;
17  
18    public Harrastus() {  }
19  
20    /**
21     * Apumetodi, jolla saadaan täytettyä testiarvot Harrastukselle.
22     * Aloitusvuosi arvotaan, jotta kahdella harrastuksella ei olisi
23     * samoja tietoja.
24     * @param jid viite henkilöön, jonka harrastuksesta on kyse
25     */
26    void vastaa_pitsin_nyplays(int jid) {
27       jasen_id = jid;
28       ala = "Pitsin nypläys";
29       aloitusvuosi = Jasen.rand(1900,2000);
30       tuntia_viikossa = Jasen.rand(0,60);
31    }
32    /**
33     * Tulostetaan harrastuksen tiedot
34     * @param out tietovirta johon tulostetaan
35     */
36    public void tulosta(PrintStream out) {
37      out.println(ala + " " + aloitusvuosi + " " + tuntia_viikossa);
38    }
39  
40    /**
41     * Tulostetaan henkilön tiedot
42     * @param os tietovirta johon tulostetaan
43     */
44    public void tulosta(OutputStream os) {
45      tulosta(new PrintStream(os));
46    }
47  
48    /**
49     * Antaa harrastukselle seuraavan rekisterinumeron.
50     * @return harrastuksen uusi tunnus_nro
51     */
52    public int  rekisteroi() {
53      tunnus_nro = seuraava_nro;
54      seuraava_nro++;
55      return tunnus_nro;
56    }
57  
58    public int getTunnus_nro() { return tunnus_nro; }
59    public int getJasen_id() { return jasen_id; }
60  
61    public String toString() {
62      return "" +
63      tunnus_nro     + "|" +
64      jasen_id       + "|" +
65      ala            + "|" +
66      aloitusvuosi   + "|" +
67      tuntia_viikossa;
68    }
69  
70    public void parse(String rivi) {
71      StringBuffer sb = new StringBuffer(rivi);
72      tunnus_nro     = Mjonot.erota(sb,'|',tunnus_nro);
73      if ( tunnus_nro >= seuraava_nro ) seuraava_nro = tunnus_nro + 1;
74      jasen_id       = Mjonot.erota(sb,'|',jasen_id);
75      ala            = Mjonot.erota(sb,'|',ala);
76      aloitusvuosi   = Mjonot.erota(sb,'|',aloitusvuosi);
77      tuntia_viikossa= Mjonot.erota(sb,'|',tuntia_viikossa);
78    }
79  
80  
81    /**
82     * Testiohjelma Harrastukselle.
83     * @param args ei käytössä
84     */
85    public static void main(String args[]) {
86      Harrastus har = new Harrastus();
87      har.vastaa_pitsin_nyplays(2);
88      har.tulosta(System.out);
89    }
90  
91  }
92  
93  
94