kerho
Class Harrastukset

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

public class Harrastukset
extends java.lang.Object
implements java.lang.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
 
Field Summary
private  java.util.Collection<Harrastus> alkiot
          Taulukko harrastuksista
private  boolean muutettu
           
private  java.lang.String tiedostonPerusNimi
           
 
Constructor Summary
Harrastukset()
          Harrastusten alustaminen
 
Method Summary
 java.lang.String getBakNimi()
          Palauttaa varakopiotiedoston nimen
 int getLkm()
          Palauttaa kerhon harrastusten lukumäärän
 java.lang.String getTiedostonNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 java.lang.String getTiedostonPerusNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 java.util.Iterator<Harrastus> iterator()
          Iteraattori kaikkien harrastusten läpikäymiseen
 java.util.Iterator<Harrastus> iterator(int vnro)
          Palautetaan tietyn jäsenen harrastuksia käsittelevä iteraattori
 void lisaa(Harrastus har)
          Lisää uuden harrastuksen tietorakenteeseen.
 void lueTiedostosta(java.lang.String tied)
          Lukee harrastukset tiedostosta.
static void main(java.lang.String[] args)
          Testiohjelma harrastuksille
 void setTiedostonPerusNimi(java.lang.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
 

Field Detail

muutettu

private boolean muutettu

tiedostonPerusNimi

private java.lang.String tiedostonPerusNimi

alkiot

private final java.util.Collection<Harrastus> alkiot
Taulukko harrastuksista

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

lueTiedostosta

public void lueTiedostosta(java.lang.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(java.lang.String tied)
Asettaa tiedoston perusnimen ilan tarkenninta

Parameters:
tied - tallennustiedoston perusnimi

getTiedostonPerusNimi

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

Returns:
tallennustiedoston nimi

getTiedostonNimi

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

Returns:
tallennustiedoston nimi

getBakNimi

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

Returns:
varakopiotiedoston nimi

iterator

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

Specified by:
iterator in interface java.lang.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;
  
 

iterator

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

main

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

Parameters:
args - ei käytössä