kerho
Class Kerho

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

public class Kerho
extends java.lang.Object
implements java.lang.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

Field Summary
private  Harrastukset harrastukset
           
private  Jasenet jasenet
           
 
Constructor Summary
Kerho()
           
 
Method Summary
 Jasen annaJasen(int i)
          Deprecated.  
 java.lang.String getBakNimi()
          Palauttaa varkopion nimen
 int getJasenia()
          Palautaa kerhon jäsenmäärän
 java.lang.String getNimi()
          Palauttaa kerhon nimen
 java.lang.String getTiedostonNimi()
          Palauttaa tiedoston nimen
 java.util.Iterator<Harrastus> harrastusIterator()
          Kaikkien harrastusten iteraattori
 java.util.Iterator<Harrastus> harrastusIterator(int jid)
          Tietyn jäsenen iteraattori
 java.util.Iterator<Jasen> iterator()
          Kaikien jäsenten iteraattori
 java.util.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(java.lang.String nimi)
          Lukee kerhon tiedot tiedostosta
static void main(java.lang.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
 

Field Detail

jasenet

private final Jasenet jasenet

harrastukset

private final Harrastukset harrastukset
Constructor Detail

Kerho

public Kerho()
Method Detail

getNimi

public java.lang.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 java.lang.String getTiedostonNimi()
Palauttaa tiedoston nimen

Returns:
tiedoston nimi

getBakNimi

public java.lang.String getBakNimi()
Palauttaa varkopion nimen

Returns:
varakopion nimi

lisaa

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

Parameters:
jasen -
Throws:
SailoException
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 -

iterator

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

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

jasenIterator

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

Returns:
jäseniteraattori

harrastusIterator

public java.util.Iterator<Harrastus> harrastusIterator()
Kaikkien harrastusten iteraattori

Returns:
harrastusiteraattori

harrastusIterator

public java.util.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 java.lang.IndexOutOfBoundsException
Deprecated. 

Palauttaa i:n jäsenen

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

lueTiedostosta

public void lueTiedostosta(java.lang.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(java.lang.String[] args)
Testiohjelma kerhosta

Parameters:
args - ei käytössä