kerho
Class Harrastukset

java.lang.Object
  extended by kerho.Harrastukset
All Implemented Interfaces:
Iterable<Harrastus>

public class Harrastukset
extends Object
implements Iterable<Harrastus>

Kerhon harrastukset, joka osaa mm. lisätä uuden harrastuksen

Version:
1.0, 22.02.2003
Author:
Vesa Lappalainen

Nested Class Summary
 class Harrastukset.HarrastuksetIterator
          Luokka tietyn jäsen harrastusten iteroimiseksi
 
Constructor Summary
Harrastukset()
          Harrastusten alustaminen
 
Method Summary
 List<Harrastus> annaHarrastukset(int tunnusnro)
          Haetaan kaikki jäsen harrastukset
 String getBakNimi()
          Palauttaa varakopiotiedoston nimen
 int getLkm()
          Palauttaa kerhon harrastusten lukumäärän
 String getTiedostonNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 String getTiedostonPerusNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 Iterator<Harrastus> iterator()
          Iteraattori kaikkien harrastusten läpikäymiseen
 Iterator<Harrastus> iterator(int vnro)
          Palautetaan tietyn jäsenen harrastuksia käsittelevä iteraattori
 void lisaa(Harrastus har)
          Lisää uuden harrastuksen tietorakenteeseen.
 void lueTiedostosta(String tied)
          Lukee harrastukset tiedostosta.
static void main(String[] args)
          Testiohjelma harrastuksille
 boolean poista(Harrastus harrastus)
          Poistaa valitun harrastuksen
 int poista(int jasenNro)
          Poistaa kaikki tietyn jäsenen harrastukset
 void setMuutos()
          Laitetaan muutos, jolloin pakotetaan tallentamaan.
 void setTiedostonPerusNimi(String tied)
          Asettaa tiedoston perusnimen ilan tarkenninta
 void talleta()
          Tallentaa harrastukset tiedostoon.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Harrastukset

public Harrastukset()
Harrastusten alustaminen

Method Detail

lisaa

public void lisaa(Harrastus har)
Lisää uuden harrastuksen tietorakenteeseen. Ottaa harrastuksen omistukseensa.

Parameters:
har - lisättävä harrastus. Huom tietorakenne muuttuu omistajaksi

poista

public boolean poista(Harrastus harrastus)
Poistaa valitun harrastuksen

Parameters:
harrastus - poistettava harrastus
Returns:
tosi jos löytyi poistettava harrastus
 #THROWS SailoException 
 #import java.io.File;
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
  Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
  Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2); 
  Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1); 
  Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2); 
  harrasteet.lisaa(pitsi21);
  harrasteet.lisaa(pitsi11);
  harrasteet.lisaa(pitsi22);
  harrasteet.lisaa(pitsi12);
  harrasteet.poista(pitsi23) === false ; harrasteet.getLkm() === 4;
  harrasteet.poista(pitsi11) === true;   harrasteet.getLkm() === 3;
  List h = harrasteet.annaHarrastukset(1);
  h.size() === 1; 
  h = harrasteet.annaHarrastukset(1);
  h.get(0) === pitsi12;
 

poista

public int poista(int jasenNro)
Poistaa kaikki tietyn jäsenen harrastukset

Parameters:
jasenNro - viite siihen, minkä jäsenen harrastukset poistetaan
Returns:
montako poistettiin
Example:
 #THROWS SailoException 
 #import java.io.File;
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
  Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
  Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2); 
  Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1); 
  Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2); 
  harrasteet.lisaa(pitsi21);
  harrasteet.lisaa(pitsi11);
  harrasteet.lisaa(pitsi22);
  harrasteet.lisaa(pitsi12);
  harrasteet.lisaa(pitsi23);
  harrasteet.poista(2) === 3;  harrasteet.getLkm() === 2;
  harrasteet.poista(3) === 0;  harrasteet.getLkm() === 2;
  List h = harrasteet.annaHarrastukset(2);
  h.size() === 0; 
  h = harrasteet.annaHarrastukset(1);
  h.get(0) === pitsi11;
  h.get(1) === pitsi12;
 

lueTiedostosta

public void lueTiedostosta(String tied)
                    throws SailoException
Lukee harrastukset tiedostosta.

Parameters:
tied - tiedoston nimen alkuosa
Throws:
SailoException - jos lukeminen epäonnistuu
Example:
 #THROWS SailoException 
 #import java.io.File;
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
  Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
  Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2); 
  Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1); 
  Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2); 
  String tiedNimi = "testikelmit";
  File ftied = new File(tiedNimi+".har");
  ftied.delete();
  harrasteet.lueTiedostosta(tiedNimi); #THROWS SailoException
  harrasteet.lisaa(pitsi21);
  harrasteet.lisaa(pitsi11);
  harrasteet.lisaa(pitsi22);
  harrasteet.lisaa(pitsi12);
  harrasteet.lisaa(pitsi23);
  harrasteet.talleta();
  harrasteet = new Harrastukset();
  harrasteet.lueTiedostosta(tiedNimi);
  Iterator i = harrasteet.iterator();
  i.next().toString() === pitsi21.toString();
  i.next().toString() === pitsi11.toString();
  i.next().toString() === pitsi22.toString();
  i.next().toString() === pitsi12.toString();
  i.next().toString() === pitsi23.toString();
  i.hasNext() === false;
  harrasteet.lisaa(pitsi23);
  harrasteet.talleta();
  ftied.delete() === true;
  File fbak = new File(tiedNimi+".hbak");
  fbak.delete() === true;
 

talleta

public void talleta()
             throws SailoException
Tallentaa harrastukset tiedostoon.

Throws:
SailoException - jos talletus epäonnistuu

getLkm

public int getLkm()
Palauttaa kerhon harrastusten lukumäärän

Returns:
harrastusten lukumäärä

setTiedostonPerusNimi

public void setTiedostonPerusNimi(String tied)
Asettaa tiedoston perusnimen ilan tarkenninta

Parameters:
tied - tallennustiedoston perusnimi

getTiedostonPerusNimi

public String getTiedostonPerusNimi()
Palauttaa tiedoston nimen, jota käytetään tallennukseen

Returns:
tallennustiedoston nimi

getTiedostonNimi

public String getTiedostonNimi()
Palauttaa tiedoston nimen, jota käytetään tallennukseen

Returns:
tallennustiedoston nimi

getBakNimi

public String getBakNimi()
Palauttaa varakopiotiedoston nimen

Returns:
varakopiotiedoston nimi

iterator

public Iterator<Harrastus> iterator()
Iteraattori kaikkien harrastusten läpikäymiseen

Specified by:
iterator in interface Iterable<Harrastus>
Returns:
harrastusiteraattori
Example:
 #PACKAGEIMPORT
 #import java.util.*;
 
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
  Harrastus pitsi11 = new Harrastus(1); harrasteet.lisaa(pitsi11);
  Harrastus pitsi22 = new Harrastus(2); harrasteet.lisaa(pitsi22);
  Harrastus pitsi12 = new Harrastus(1); harrasteet.lisaa(pitsi12);
  Harrastus pitsi23 = new Harrastus(2); harrasteet.lisaa(pitsi23);
 
  Iterator i2=harrasteet.iterator();
  i2.next() === pitsi21;
  i2.next() === pitsi11;
  i2.next() === pitsi22;
  i2.next() === pitsi12;
  i2.next() === pitsi23;
  i2.next() === pitsi12;  #THROWS NoSuchElementException  
  
  int n = 0;
  int jnrot[] = {2,1,2,1,2};
  
  for ( Harrastus har:harrasteet ) { 
    har.getJasenNro() === jnrot[n]; n++;  
  }
  
  n === 5;
  
 

annaHarrastukset

public List<Harrastus> annaHarrastukset(int tunnusnro)
Haetaan kaikki jäsen harrastukset

Parameters:
tunnusnro - jäsenen tunnusnumero jolle harrastuksia haetaan
Returns:
tietorakenne jossa viiteet löydetteyihin harrastuksiin
Example:
 #import java.util.*;
 
  Harrastukset harrasteet = new Harrastukset();
  Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
  Harrastus pitsi11 = new Harrastus(1); harrasteet.lisaa(pitsi11);
  Harrastus pitsi22 = new Harrastus(2); harrasteet.lisaa(pitsi22);
  Harrastus pitsi12 = new Harrastus(1); harrasteet.lisaa(pitsi12);
  Harrastus pitsi23 = new Harrastus(2); harrasteet.lisaa(pitsi23);
  Harrastus pitsi51 = new Harrastus(5); harrasteet.lisaa(pitsi51);
  
  List loytyneet;
  loytyneet = harrasteet.annaHarrastukset(3);
  loytyneet.size() === 0; 
  loytyneet = harrasteet.annaHarrastukset(1);
  loytyneet.size() === 2; 
  loytyneet.get(0) == pitsi11 === true;
  loytyneet.get(1) == pitsi12 === true;
  loytyneet = harrasteet.annaHarrastukset(5);
  loytyneet.size() === 1; 
  loytyneet.get(0) == pitsi51 === true;
 

iterator

public Iterator<Harrastus> iterator(int vnro)
Palautetaan tietyn jäsenen harrastuksia käsittelevä iteraattori

Parameters:
vnro - tutkittavan jäsenen viitenumero
Returns:
valitun jäsenen harrastusten iteraattori

setMuutos

public void setMuutos()
Laitetaan muutos, jolloin pakotetaan tallentamaan.


main

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

Parameters:
args - ei käytössä