Kerho.java |
1 package kerho; 2 3 import java.util.Iterator; 4 5 /** 6 * Kerho-luokka, joka huolehtii jäsenistöstä. Pääosin kaikki metodit 7 * ovat vain "välittäjämetodeja" jäsenistöön. 8 * 9 * @author Vesa Lappalainen 10 * @version 1.0, 09.02.2003 11 * @version 1.1, 23.02.2003 12 * @version 1.2, 07.01.2008 / testit 13 */ 14 public class Kerho implements Iterable<Jasen> { 15 private final Jasenet jasenet = new Jasenet(); 16 private final Harrastukset harrastukset = new Harrastukset(); 17 18 19 /** 20 * Palauttaa kerhon nimen 21 * @return kerhon nimi 22 */ 23 public String getNimi() { return jasenet.getKokoNimi(); } 24 25 26 /** 27 * Palautaa kerhon jäsenmäärän 28 * @return jäsenmäärä 29 */ 30 public int getJasenia() { return jasenet.getLkm(); } 31 32 33 /** 34 * Poistaa jäsenistöstä ja harrasteista ne joilla on nro. Kesken. 35 * @param nro viitenumero, jonka mukaan poistetaan 36 * @return montako jäsentä poistettiin 37 */ 38 public int poista(int nro) { return 0; } 39 40 41 /** 42 * Tekee varakopion kerhosta 43 * @param bakTark tarkennin varakopioille 44 * @return onnistuiko kopioiden tekeminen 45 */ 46 public boolean teeBak(String bakTark) { return jasenet.teeBak(bakTark); } 47 48 49 /** 50 * Palauttaa tiedoston nimen 51 * @return tiedoston nimi 52 */ 53 public String getTiedostonNimi() { return jasenet.getTiedostonNimi();} 54 55 56 /** 57 * Palauttaa varkopion nimen 58 * @return varakopion nimi 59 */ 60 public String getBakNimi() { return jasenet.getBakNimi(); } 61 62 63 /** 64 * Lisää kerhoon uuden jäsenen 65 * @param jasen 66 * @throws SailoException 67 * @example 68 * <pre name="test"> 69 * #THROWS SailoException 70 * #PACKAGEIMPORT 71 * #import java.util.*; 72 * 73 * Kerho kerho = new Kerho(); 74 * Jasen aku1 = new Jasen(), aku2 = new Jasen(); 75 * kerho.getJasenia() === 0; 76 * kerho.lisaa(aku1); kerho.getJasenia() === 1; 77 * kerho.lisaa(aku2); kerho.getJasenia() === 2; 78 * kerho.lisaa(aku1); kerho.getJasenia() === 3; 79 * 80 * Iterator<Jasen> i=kerho.iterator(); 81 * i.next() == aku1 === true; 82 * i.next() == aku2 === true; 83 * i.next() == aku1 === true; 84 * i.next(); #THROWS NoSuchElementException 85 * 86 * kerho.lisaa(aku1); kerho.getJasenia() === 4; 87 * kerho.lisaa(aku1); kerho.getJasenia() === 5; 88 * kerho.lisaa(aku1); #THROWS SailoException 89 * </pre> 90 * 91 */ 92 public void lisaa(Jasen jasen) throws SailoException { 93 jasenet.lisaa(jasen); 94 } 95 96 97 /** 98 * Listään uusi harrastus kerhoon 99 * @param har 100 */ 101 public void lisaa(Harrastus har) { 102 harrastukset.lisaa(har); 103 } 104 105 106 /** 107 * Kaikien jäsenten iteraattori 108 * @return jäseniteraattori 109 */ 110 public Iterator<Jasen> iterator() { 111 return jasenIterator(); 112 } 113 114 115 /** 116 * Kaikien jäsenten iteraattori 117 * @return jäseniteraattori 118 */ 119 public Iterator<Jasen> jasenIterator() { 120 return jasenet.iterator(); 121 } 122 123 124 /** 125 * Kaikkien harrastusten iteraattori 126 * @return harrastusiteraattori 127 */ 128 public Iterator<Harrastus> harrastusIterator() { 129 return harrastukset.iterator(); 130 } 131 132 133 /** 134 * Tietyn jäsenen iteraattori 135 * @param jid jäsenen viitenumero 136 * @return harrastusiteraattori yhdelle jäsenelle 137 */ 138 public Iterator<Harrastus> harrastusIterator(int jid) { 139 return harrastukset.iterator(jid); 140 } 141 142 143 /** 144 * Palauttaa i:n jäsenen 145 * @param i monesko jäsen palautetaan 146 * @return viite i:teen jäseneen 147 * @throws IndexOutOfBoundsException jos i väärin 148 * @deprecated 149 */ 150 @Deprecated 151 public Jasen annaJasen(int i) throws IndexOutOfBoundsException { 152 return jasenet.anna(i); 153 } 154 155 /** 156 * Lukee kerhon tiedot tiedostosta 157 * @param nimi jota käyteään lukemisessa 158 * @throws SailoException jos lukeminen epäonnistuu 159 */ 160 public void lueTiedostosta(String nimi) throws SailoException { 161 jasenet.lueTiedostosta(nimi); 162 } 163 164 165 /** 166 * Tallettaa kerhon tiedot tiedostoon 167 * @throws SailoException jos tallettamisessa ongelmia 168 */ 169 public void talleta() throws SailoException { 170 jasenet.talleta(); 171 } 172 173 174 /** 175 * Testiohjelma kerhosta 176 * @param args ei käytössä 177 */ 178 public static void main(String args[]) { 179 Kerho kerho = new Kerho(); 180 181 try { 182 kerho.lueTiedostosta("kelmit"); 183 184 Jasen aku = new Jasen(), aku2 = new Jasen(); 185 aku.rekisteroi(); aku.vastaaAkuAnkka(); 186 aku2.rekisteroi(); aku2.vastaaAkuAnkka(); 187 188 kerho.lisaa(aku); 189 kerho.lisaa(aku2); 190 191 System.out.println("============= Kerhon testi ================="); 192 193 for (int i=0; i<kerho.getJasenia(); i++) { 194 Jasen jasen = kerho.annaJasen(i); 195 System.out.println("Jäsen nro: " + i); 196 jasen.tulosta(System.out); 197 } 198 199 } catch ( SailoException ex ) { 200 System.out.println(ex.getMessage()); 201 } 202 } 203 204 205 } 206 207 208