kerho
Class Kerho

java.lang.Object
  extended by kerho.Kerho
All Implemented Interfaces:
Iterable<Jasen>

public class Kerho
extends Object
implements Iterable<Jasen>

Kerho-luokka, joka huolehtii jäsenistöstä. Pääosin kaikki metodit ovat vain "välittäjämetodeja" jäsenistöön.

Version:
1.0, 09.02.2003, 1.1, 23.02.2003, 1.2, 07.01.2008 / testit
Author:
Vesa Lappalainen

Constructor Summary
Kerho()
           
 
Method Summary
 List<Harrastus> annaHarrastukset(Jasen jasen)
          Palautetaan lista jäsenen harrastuksia
 Jasen annaJasen(int i)
          Deprecated. pyritään eroon indeksoidusta käytöstä
 Collection<Jasen> etsi(String hakuehto, int k)
          Etsii jäsenet listaan
 String getBakNimi()
          Palauttaa varkopion nimen
 int getJasenia()
          Palautaa kerhon jäsenmäärän
 String getNimi()
          Palauttaa kerhon nimen
 String getTiedostonNimi()
          Palauttaa tiedoston nimen
 Iterator<Harrastus> harrastusIterator()
          Kaikkien harrastusten iteraattori
 Iterator<Harrastus> harrastusIterator(int jid)
          Tietyn jäsenen iteraattori
 Iterator<Jasen> iterator()
          Kaikien jäsenten iteraattori
 Iterator<Jasen> jasenIterator()
          Kaikien jäsenten iteraattori
 void lisaa(Harrastus har)
          Listään uusi harrastus kerhoon
 void lisaa(Jasen jasen)
          Lisää kerhoon uuden jäsenen
 void lueTiedostosta(String nimi)
          Lukee kerhon tiedot tiedostosta
static void main(String[] args)
          Testiohjelma kerhosta
 int poista(int nro)
          Poistaa jäsenistöstä ja harrasteista ne joilla on nro.
 void talleta()
          Tallettaa kerhon tiedot tiedostoon.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Kerho

public Kerho()
Method Detail

getNimi

public String getNimi()
Palauttaa kerhon nimen

Returns:
kerhon nimi

getJasenia

public int getJasenia()
Palautaa kerhon jäsenmäärän

Returns:
jäsenmäärä

poista

public int poista(int nro)
Poistaa jäsenistöstä ja harrasteista ne joilla on nro. Kesken.

Parameters:
nro - viitenumero, jonka mukaan poistetaan
Returns:
montako jäsentä poistettiin

getTiedostonNimi

public String getTiedostonNimi()
Palauttaa tiedoston nimen

Returns:
tiedoston nimi

getBakNimi

public String getBakNimi()
Palauttaa varkopion nimen

Returns:
varakopion nimi

lisaa

public void lisaa(Jasen jasen)
           throws SailoException
Lisää kerhoon uuden jäsenen

Parameters:
jasen - lisättävä jäsen
Throws:
SailoException - jos joku menee pieleen
Example:
 #THROWS SailoException
 #PACKAGEIMPORT
 #import java.util.*;
 
 Kerho kerho = new Kerho();
 Jasen aku1 = new Jasen(), aku2 = new Jasen();
 kerho.getJasenia() === 0;
 kerho.lisaa(aku1); kerho.getJasenia() === 1;
 kerho.lisaa(aku2); kerho.getJasenia() === 2;
 kerho.lisaa(aku1); kerho.getJasenia() === 3;
 
 Iterator  i=kerho.iterator();
 i.next() == aku1  === true;
 i.next() == aku2  === true;
 i.next() == aku1  === true;
 i.next();  #THROWS NoSuchElementException

 kerho.lisaa(aku1); kerho.getJasenia() === 4;
 kerho.lisaa(aku1); kerho.getJasenia() === 5;
 kerho.lisaa(aku1);            #THROWS SailoException
 

lisaa

public void lisaa(Harrastus har)
Listään uusi harrastus kerhoon

Parameters:
har - lisättävä harrastus

iterator

public Iterator<Jasen> iterator()
Kaikien jäsenten iteraattori

Specified by:
iterator in interface Iterable<Jasen>
Returns:
jäseniteraattori

jasenIterator

public Iterator<Jasen> jasenIterator()
Kaikien jäsenten iteraattori

Returns:
jäseniteraattori

harrastusIterator

public Iterator<Harrastus> harrastusIterator()
Kaikkien harrastusten iteraattori

Returns:
harrastusiteraattori

harrastusIterator

public Iterator<Harrastus> harrastusIterator(int jid)
Tietyn jäsenen iteraattori

Parameters:
jid - jäsenen viitenumero
Returns:
harrastusiteraattori yhdelle jäsenelle

annaJasen

@Deprecated
public Jasen annaJasen(int i)
                throws IndexOutOfBoundsException
Deprecated. pyritään eroon indeksoidusta käytöstä

Palauttaa i:n jäsenen

Parameters:
i - monesko jäsen palautetaan
Returns:
viite i:teen jäseneen
Throws:
IndexOutOfBoundsException - jos i väärin

lueTiedostosta

public void lueTiedostosta(String nimi)
                    throws SailoException
Lukee kerhon tiedot tiedostosta

Parameters:
nimi - jota käyteään lukemisessa
Throws:
SailoException - jos lukeminen epäonnistuu
Example:
 #THROWS SailoException 
 #import java.io.File;
 
  Kerho kerho = new Kerho();
  
  Jasen aku1 = new Jasen(); aku1.vastaaAkuAnkka(); aku1.rekisteroi();
  Jasen aku2 = new Jasen(); aku2.vastaaAkuAnkka(); aku2.rekisteroi();
  Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(aku2.getTunnusnro());
  Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(aku1.getTunnusnro());
  Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(aku2.getTunnusnro()); 
  Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(aku1.getTunnusnro()); 
  Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(aku2.getTunnusnro());
   
  String tiedNimi = "testikelmit";
  File ftied  = new File(tiedNimi+".dat");
  File fhtied = new File(tiedNimi+".har");
  ftied.delete();
  fhtied.delete();
  kerho.lueTiedostosta(tiedNimi); #THROWS SailoException
  kerho.lisaa(aku1);
  kerho.lisaa(aku2);
  kerho.lisaa(pitsi21);
  kerho.lisaa(pitsi11);
  kerho.lisaa(pitsi22);
  kerho.lisaa(pitsi12);
  kerho.lisaa(pitsi23);
  kerho.talleta();
  kerho = new Kerho();
  kerho.lueTiedostosta(tiedNimi);
  Iterator i = kerho.iterator();
  i.next().toString() === aku1.toString();
  i.next().toString() === aku2.toString();
  i.hasNext() === false;
  Iterator ih = kerho.harrastusIterator();
  ih.next().toString() === pitsi21.toString();
  ih.next().toString() === pitsi11.toString();
  ih.next().toString() === pitsi22.toString();
  ih.next().toString() === pitsi12.toString();
  ih.next().toString() === pitsi23.toString();
  ih.hasNext() === false;
  kerho.lisaa(aku2);
  kerho.lisaa(pitsi23);
  kerho.talleta();
  ftied.delete()  === true;
  fhtied.delete() === true;
  File fbak = new File(tiedNimi+".bak");
  File fhbak = new File(tiedNimi+".hbak");
  fbak.delete() === true;
  fhbak.delete() === true;
 

talleta

public void talleta()
             throws SailoException
Tallettaa kerhon tiedot tiedostoon. Vaikka jäsenten tallettamien epäonistuisi, niin yritetään silti tallettaa harrastuksia ennen poikkeuksen heittämistä.

Throws:
SailoException - jos tallettamisessa ongelmia

main

public static void main(String[] args)
Testiohjelma kerhosta

Parameters:
args - ei käytössä

annaHarrastukset

public List<Harrastus> annaHarrastukset(Jasen jasen)
Palautetaan lista jäsenen harrastuksia

Parameters:
jasen - jäsen jonka harrastuksia etsitään
Returns:
lista jäsenen harrastuksia

etsi

public Collection<Jasen> etsi(String hakuehto,
                              int k)
Etsii jäsenet listaan

Parameters:
hakuehto - etsittävä jäsen
k - kenttä jonka mukaan etsitään
Returns:
lista löytyneistä jäsenistä