| Kerho.java |
1 package kerho;
2 /**
3 * Kerho-luokka, joka huolehtii jäsenistöstä. Pääosin kaikki metodit
4 * ovat vain "välittäjämetodeja" jäsenistöön.
5 *
6 * @author Vesa Lappalainen
7 * @version 1.0, 09.02.2003
8 * @version 1.1, 23.02.2003
9 * @version 1.2, 07.01.2008 / testit
10 */
11 public class Kerho {
12 private final Jasenet jasenet = new Jasenet();
13
14 /**
15 * Palauttaa kerhon nimen
16 * @return kerhon nimi
17 */
18 public String getNimi() { return jasenet.getKokoNimi(); }
19
20 /**
21 * Palautaa kerhon jäsenmäärän
22 * @return jäsenmäärä
23 */
24 public int getJasenia() { return jasenet.getLkm(); }
25
26 /**
27 * Poistaa jäsenistöstä ja harrasteista ne joilla on nro. Kesken.
28 * @param nro viitenumero, jonka mukaan poistetaan
29 * @return montako jäsentä poistettiin
30 */
31 public int poista(int nro) { return 0; }
32
33 /**
34 * Tekee varakopion kerhosta
35 * @param bakTark tarkennin varakopioille
36 * @return onnistuiko kopioiden tekeminen
37 */
38 public boolean teeBak(String bakTark) { return jasenet.teeBak(bakTark); }
39
40 /**
41 * Palauttaa tiedoston nimen
42 * @return tiedoston nimi
43 */
44 public String getTiedostonNimi() { return jasenet.getTiedostonNimi();}
45
46 /**
47 * Palauttaa varkopion nimen
48 * @return varakopion nimi
49 */
50 public String getBakNimi() { return jasenet.getBakNimi(); }
51
52 /**
53 * Lisää kerhoon uuden jäsenen
54 * @param jasen
55 * @throws SailoException
56 * @example
57 * <pre name="test">
58 * #THROWS SailoException
59 * #PACKAGEIMPORT
60 * Kerho kerho = new Kerho();
61 * Jasen aku1 = new Jasen(), aku2 = new Jasen();
62 * kerho.getJasenia() === 0;
63 * kerho.lisaa(aku1); kerho.getJasenia() === 1;
64 * kerho.lisaa(aku2); kerho.getJasenia() === 2;
65 * kerho.lisaa(aku1); kerho.getJasenia() === 3;
66 * kerho.annaJasen(0) === aku1;
67 * kerho.annaJasen(1) === aku2;
68 * kerho.annaJasen(2) === aku1;
69 * kerho.annaJasen(3) === aku1; #THROWS IndexOutOfBoundsException
70 * kerho.lisaa(aku1); kerho.getJasenia() === 4;
71 * kerho.lisaa(aku1); kerho.getJasenia() === 5;
72 * kerho.lisaa(aku1); #THROWS SailoException
73 * </pre>
74 *
75 */
76 public void lisaa(Jasen jasen) throws SailoException {
77 jasenet.lisaa(jasen);
78 }
79
80 /**
81 * Palauttaa i:n jäsenen
82 * @param i monesko jäsen palautetaan
83 * @return viite i:teen jäseneen
84 * @throws IndexOutOfBoundsException jos i väärin
85 */
86 public Jasen annaJasen(int i) throws IndexOutOfBoundsException {
87 return jasenet.anna(i);
88 }
89
90 /**
91 * Lukee kerhon tiedot tiedostosta
92 * @param nimi jota käyteään lukemisessa
93 * @throws SailoException jos lukeminen epäonnistuu
94 */
95 public void lueTiedostosta(String nimi) throws SailoException {
96 jasenet.lueTiedostosta(nimi);
97 }
98
99 /**
100 * Tallettaa kerhon tiedot tiedostoon
101 * @throws SailoException jos tallettamisessa ongelmia
102 */
103 public void talleta() throws SailoException {
104 jasenet.talleta();
105 }
106
107 /**
108 * Testiohjelma kerhosta
109 * @param args ei käytössä
110 */
111 public static void main(String args[]) {
112 Kerho kerho = new Kerho();
113
114 try {
115 kerho.lueTiedostosta("kelmit");
116
117 Jasen aku = new Jasen(), aku2 = new Jasen();
118 aku.rekisteroi(); aku.vastaaAkuAnkka();
119 aku2.rekisteroi(); aku2.vastaaAkuAnkka();
120
121 kerho.lisaa(aku);
122 kerho.lisaa(aku2);
123
124 System.out.println("============= Kerhon testi =================");
125
126 for (int i=0; i<kerho.getJasenia(); i++) {
127 Jasen jasen = kerho.annaJasen(i);
128 System.out.println("Jäsen nro: " + i);
129 jasen.tulosta(System.out);
130 }
131
132 } catch ( SailoException ex ) {
133 System.out.println(ex.getMessage());
134 }
135 }
136
137
138 }
139
140
141