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