1   package kerho;
2   import java.util.*;
3   
4   /**
5    * Kerho-luokka, joka huolehtii jäsenistöstä.  Pääosin kaikki metodit
6    * ovat vain "välittäjämetodeja" jäsenistöön tai harrastuksiin.
7    *
8    * @author Vesa Lappalainen
9    * @version 1.0, 09.02.2003
10   * @version 1.1, 23.02.2003
11   * @version 1.2, 20.03.2003
12   */
13  public class Kerho {
14  
15    private Jasenet jasenet = new Jasenet();
16    private Harrastukset harrastukset = new Harrastukset();
17  
18    public String getNimi() { return jasenet.getKoko_nimi(); }
19    public int getJasenia() { return jasenet.getLkm();       }
20  
21    /**
22     * Poistaa jäsenistöstä ja harrasteista ne joilla on valittu id. Kesken.
23     * @param id viitenumero, jonka mukaan poistetaan
24     * @return montako jäsentä poistettiin
25     */
26    public int poista(int id)              { return 0;                          }
27  
28  //  public boolean TeeBak(String bak_tark) { return jasenet.TeeBak(bak_tark);   }
29    public String getTiedoston_nimi()      { return jasenet.getTiedoston_nimi();}
30    public String getBak_nimi()            { return jasenet.getBak_nimi();      }
31    public void lisaa(Jasen jasen) throws SailoException
32                                           { jasenet.lisaa(jasen);              }
33    public void lisaa(Harrastus har)       { harrastukset.lisaa(har);           }
34  
35  //  public Jasen anna_jasen(int i) throws SailoException
36  //                                         { return jasenet.anna(i);            }
37    public Iterator jasen_iterator()         { return jasenet.iterator();       }
38    public Iterator harrastus_iterator()     { return harrastukset.iterator();  }
39    public Iterator harrastus_iterator(int jid) { return harrastukset.iterator(jid);}
40  
41  
42    public void lue_tiedostosta(String nimi) throws SailoException {
43      jasenet.lue_tiedostosta(nimi);
44      harrastukset.lue_tiedostosta(nimi);
45    }
46  
47    public void talleta() throws SailoException {
48      String virhe = "";
49      try {
50        jasenet.talleta();
51      } catch ( SailoException ex ) {
52        virhe = ex.getMessage();
53      }
54  
55      try {
56        harrastukset.talleta();
57      } catch ( SailoException ex ) {
58        virhe += ex.getMessage();
59      }
60      if ( !virhe.equals("") ) throw new SailoException(virhe);
61    }
62  
63    public List etsi(int k, String hakuehto) {
64      return jasenet.etsi(k,hakuehto);
65    }
66  
67    /**
68     * Etsii jäsenen id:n perusteella
69     * @param id tunnusnumero, jonka mukaan etsitään
70     * @return jäsen jolla etsittävä id tai null
71     */
72    public Jasen annaJasenId(int id) {
73      return jasenet.annaId(id);
74    }
75  
76  
77    public static void main(String args[]) {
78      Kerho kerho = new Kerho();
79  
80      try {
81        kerho.lue_tiedostosta("kelmit");
82      } catch ( SailoException ex ) {
83        System.out.println(ex.getMessage());
84      }
85  
86      try {
87        Jasen aku = new Jasen(), aku2 = new Jasen();
88        aku.rekisteroi();    aku.vastaa_aku_ankka();
89        aku2.rekisteroi();   aku2.vastaa_aku_ankka();
90  
91        kerho.lisaa(aku);
92        kerho.lisaa(aku2);
93  
94        System.out.println("============= Kerhon testi =================");
95  
96        for (Iterator i=kerho.jasen_iterator(); i.hasNext(); ) {
97          Jasen jasen = (Jasen)i.next();
98  //        System.out.println("Jäsen nro: " + i);
99          jasen.tulosta(System.out);
100       }
101 
102       kerho.talleta();
103 
104     } catch ( SailoException ex ) {
105       System.out.println(ex.getMessage());
106     }
107   }
108 
109 
110 }
111 
112 
113