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