package kerho; /** * Kerho-luokka, joka huolehtii jäsenistöstä. Pääosin kaikki metodit * ovat vain "välittäjämetodeja" jäsenistöön. * * @author Vesa Lappalainen * @version 1.0, 09.02.2003 * @version 1.1, 23.02.2003 * @version 1.2, 07.01.2008 / testit */ public class Kerho { private final Jasenet jasenet = new Jasenet(); /** * Palautaa kerhon jäsenmäärän * @return jäsenmäärä */ public int getJasenia() { return jasenet.getLkm(); } /** * Poistaa jäsenistöstä ja harrasteista ne joilla on nro. Kesken. * @param nro viitenumero, jonka mukaan poistetaan * @return montako jäsentä poistettiin */ public int poista(@SuppressWarnings("unused") int nro) { return 0; } /** * Lisää kerhoon uuden jäsenen * @param jasen lisättävä jäsen * @throws SailoException jos lisäystä ei voida tehdä * @example *
* #THROWS SailoException * #PACKAGEIMPORT * Kerho kerho = new Kerho(); * Jasen aku1 = new Jasen(), aku2 = new Jasen(); * aku1.rekisteroi(); aku2.rekisteroi(); * kerho.getJasenia() === 0; * kerho.lisaa(aku1); kerho.getJasenia() === 1; * kerho.lisaa(aku2); kerho.getJasenia() === 2; * kerho.lisaa(aku1); kerho.getJasenia() === 3; * kerho.getJasenia() === 3; * kerho.annaJasen(0) === aku1; * kerho.annaJasen(1) === aku2; * kerho.annaJasen(2) === aku1; * kerho.annaJasen(3) === aku1; #THROWS IndexOutOfBoundsException * kerho.lisaa(aku1); kerho.getJasenia() === 4; * kerho.lisaa(aku1); kerho.getJasenia() === 5; * kerho.lisaa(aku1); #THROWS SailoException ** */ public void lisaa(Jasen jasen) throws SailoException { jasenet.lisaa(jasen); } /** * Palauttaa i:n jäsenen * @param i monesko jäsen palautetaan * @return viite i:teen jäseneen * @throws IndexOutOfBoundsException jos i väärin */ public Jasen annaJasen(int i) throws IndexOutOfBoundsException { return jasenet.anna(i); } /** * Lukee kerhon tiedot tiedostosta * @param nimi jota käyteään lukemisessa * @throws SailoException jos lukeminen epäonnistuu */ public void lueTiedostosta(String nimi) throws SailoException { jasenet.lueTiedostosta(nimi); } /** * Tallettaa kerhon tiedot tiedostoon * @throws SailoException jos tallettamisessa ongelmia */ public void talleta() throws SailoException { jasenet.talleta(); } /** * Testiohjelma kerhosta * @param args ei käytössä */ public static void main(String args[]) { Kerho kerho = new Kerho(); try { kerho.lueTiedostosta("kelmit"); Jasen aku = new Jasen(), aku2 = new Jasen(); aku.rekisteroi(); aku.vastaaAkuAnkka(); aku2.rekisteroi(); aku2.vastaaAkuAnkka(); kerho.lisaa(aku); kerho.lisaa(aku2); System.out.println("============= Kerhon testi ================="); for (int i = 0; i < kerho.getJasenia(); i++) { Jasen jasen = kerho.annaJasen(i); System.out.println("Jäsen paikassa: " + i); jasen.tulosta(System.out); } } catch (SailoException ex) { System.out.println(ex.getMessage()); } } }