1   package kerho;
2   import java.io.*;
3   import fi.jyu.mit.ohj2.*;
4   /**
5    * Harrastus joka osaa mm. itse huolehtia tunnus_nro:staan.
6    *
7    * @author Vesa Lappalainen
8    * @version 1.0, 20.03.2003
9    */
10  public class Harrastus {
11    private int    tunnus_nro;
12    private int    jasen_id;
13    private String ala;
14    private int    aloitusvuosi;
15    private int    tuntia_viikossa;
16  
17    private static int seuraava_nro = 1;
18  
19    public Harrastus() {  }
20  
21    /**
22     * Apumetodi, jolla saadaan täytettyä testiarvot Harrastukselle.
23     * Aloitusvuosi arvotaan, jotta kahdella harrastuksella ei olisi
24     * samoja tietoja.
25     * @param jid viite henkilöön, jonka harrastuksesta on kyse
26     */
27    void vastaa_pitsin_nyplays(int jid) {
28       jasen_id = jid;
29       ala = "Pitsin nypläys";
30       aloitusvuosi = Jasen.rand(1900,2000);
31       tuntia_viikossa = Jasen.rand(0,60);
32    }
33  
34  
35    /**
36     * Tulostetaan harrastuksen tiedot
37     * @param out tietovirta johon tulostetaan
38     */
39    public void tulosta(PrintWriter out) {
40      out.println(ala + " " + aloitusvuosi + " " + tuntia_viikossa);
41    }
42  
43  
44    /**
45     * Tulostetaan harrastuksen tiedot
46     * @param os tietovirta johon tulostetaan
47     */
48    public void tulosta(OutputStream os) {
49      tulosta(new PrintStream(os));
50    }
51  
52  
53    /**
54     * Tulostetaan harrastuksen tiedot
55     * @param os tietovirta johon tulostetaan
56     */
57    public void tulosta(PrintStream out) {
58      tulosta(new PrintWriter(out,true));
59    }
60  
61    /**
62     * Antaa harrastukselle seuraavan rekisterinumeron.
63     * @return harrastuksen uusi tunnus_nro
64     */
65    public int  rekisteroi() {
66      tunnus_nro = seuraava_nro;
67      seuraava_nro++;
68      return tunnus_nro;
69    }
70  
71    /**
72     * Saantimetodi harrastuksen tunnusnumerolle
73     * @return harrastuksen tunnusnumero
74     */
75    public int getTunnus_nro() { return tunnus_nro; }
76  
77  
78    /**
79     * Saantimetodi sille, kenen harrastus on kyseessä
80     * @return sen jäsenen id, jonka harrastus on kyseessä
81     */
82    public int getJasen_id() { return jasen_id; }
83  
84  
85    /**
86     * Harrastuksen tiedot tolppa-erotettuna jonona
87     * @return harrastus tolppaerotettuna jonona
88     */
89    public String toString() {
90      return "" +
91      tunnus_nro     + "|" +
92      jasen_id       + "|" +
93      ala            + "|" +
94      aloitusvuosi   + "|" +
95      tuntia_viikossa;
96    }
97  
98  
99    /**
100    * Erottelee harrastuksen tiedot tolppaerotellusta merkkijonosta
101    * @param rivi harrastuksen tiedot tolppaeroteltuna jonona
102    */
103   public void parse(String rivi) {
104     StringBuffer sb = new StringBuffer(rivi);
105     tunnus_nro     = Mjonot.erota(sb,'|',tunnus_nro);
106     if ( tunnus_nro >= seuraava_nro ) seuraava_nro = tunnus_nro + 1;
107     jasen_id       = Mjonot.erota(sb,'|',jasen_id);
108     ala            = Mjonot.erota(sb,'|',ala);
109     aloitusvuosi   = Mjonot.erota(sb,'|',aloitusvuosi);
110     tuntia_viikossa= Mjonot.erota(sb,'|',tuntia_viikossa);
111   }
112 
113 
114   /**
115    * Testiohjelma Harrastukselle.
116    * @param args ei käytössä
117    */
118   public static void main(String args[]) {
119     Harrastus har = new Harrastus();
120     har.vastaa_pitsin_nyplays(2);
121     har.tulosta(System.out);
122   }
123 
124 }
125 
126 
127