kerho
Class Jasenet

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

public class Jasenet
extends Object
implements Iterable<Jasen>

Kerhon jäsenistö joka osaa mm. lisätä uuden jäsenen

Version:
1.0, 22.02.2003
Author:
Vesa Lappalainen

Nested Class Summary
 class Jasenet.JasenetIterator
          Luokka jäsenten iteroimiseksi.
static class Jasenet.JasenVertailija
          Luokka joka vertaa kahta jäsentä keskenään
 
Constructor Summary
Jasenet()
          Oletusmuodostaja
 
Method Summary
 Jasen anna(int i)
          Palauttaa viitteen i:teen jäseneen.
 Collection<Jasen> etsi(String hakuehto, int k)
          Etsii jäsenet listaan
 String getBakNimi()
          Palauttaa varakopiotiedoston nimen
 String getKokoNimi()
          Palauttaa Kerhon koko nimen
 int getLkm()
          Palauttaa kerhon jäsenten lukumäärän
 String getTiedostonNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 String getTiedostonPerusNimi()
          Palauttaa tiedoston nimen, jota käytetään tallennukseen
 Iterator<Jasen> iterator()
          Palautetaan iteraattori jäsenistöön.
 void lisaa(Jasen jasen)
          Lisää uuden jäsenen tietorakenteeseen.
 void lueTiedostosta(String tied)
          Lukee jäsenistön tiedostosta.
static void main(String[] args)
          Testiohjelma jäsenistölle
 void setTiedostonPerusNimi(String tied)
          Asettaa tiedoston perusnimen ilan tarkenninta
 void talleta()
          Tallentaa jäsenistön tiedostoon.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Jasenet

public Jasenet()
Oletusmuodostaja

Method Detail

lisaa

public void lisaa(Jasen jasen)
           throws SailoException
Lisää uuden jäsenen tietorakenteeseen. Ottaa jäsenen omistukseensa.

Parameters:
jasen - lisätäävän jäsenen viite. Huom tietorakenne muuttuu omistajaksi
Throws:
SailoException - jos tietorakenne on jo täynnä
Example:
 #THROWS SailoException 
 #PACKAGEIMPORT
 Jasenet jasenet = new Jasenet();
 Jasen aku1 = new Jasen(), aku2 = new Jasen();
 jasenet.getLkm() === 0;
 jasenet.lisaa(aku1); jasenet.getLkm() === 1;
 jasenet.lisaa(aku2); jasenet.getLkm() === 2;
 jasenet.lisaa(aku1); jasenet.getLkm() === 3;
 jasenet.anna(0) === aku1;
 jasenet.anna(1) === aku2;
 jasenet.anna(2) === aku1;
 jasenet.anna(1) == aku1 === false;
 jasenet.anna(1) == aku2 === true;
 jasenet.anna(3) === aku1; #THROWS IndexOutOfBoundsException 
 jasenet.lisaa(aku1); jasenet.getLkm() === 4;
 jasenet.lisaa(aku1); jasenet.getLkm() === 5;
 jasenet.lisaa(aku1);  #THROWS SailoException
 

anna

public Jasen anna(int i)
           throws IndexOutOfBoundsException
Palauttaa viitteen i:teen jäseneen.

Parameters:
i - monennenko jäsenen viite halutaan
Returns:
viite jäseneen, jonka indeksi on i
Throws:
IndexOutOfBoundsException - jos i ei ole sallitulla alueella

lueTiedostosta

public void lueTiedostosta(String tied)
                    throws SailoException
Lukee jäsenistön tiedostosta. Kesken.

Parameters:
tied - tiedoston nimen alkuosa
Throws:
SailoException - jos lukeminen epäonnistuu
Example:
 #THROWS SailoException 
 #import java.io.File;
 
  Jasenet jasenet = new Jasenet();
  Jasen aku1 = new Jasen(), aku2 = new Jasen();
  aku1.vastaaAkuAnkka();
  aku2.vastaaAkuAnkka();
  String tiedNimi = "testikelmit";
  File ftied = new File(tiedNimi+".dat");
  ftied.delete();
  jasenet.lueTiedostosta(tiedNimi); #THROWS SailoException
  jasenet.lisaa(aku1);
  jasenet.lisaa(aku2);
  jasenet.talleta();
  jasenet = new Jasenet();           // Poistetaan vanhat luomalla uusi
  jasenet.lueTiedostosta(tiedNimi);  // johon ladataan tiedot tiedostosta.
  Iterator i = jasenet.iterator();
  i.next().toString() === aku1.toString();
  i.next().toString() === aku2.toString();
  i.hasNext() === false;
  jasenet.lisaa(aku2);
  jasenet.talleta();
  ftied.delete() === true;
  File fbak = new File(tiedNimi+".bak");
  fbak.delete() === true;
 

talleta

public void talleta()
             throws SailoException
Tallentaa jäsenistön tiedostoon. Tiedoston muoto:
 Kelmien kerho
 20
 ; kommenttirivi
 2|Ankka Aku|121103-706Y|Ankkakuja 6|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
 3|Ankka Tupu|121153-706Y|Ankkakuja 6|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
 

Throws:
SailoException - jos talletus epäonnistuu

getKokoNimi

public String getKokoNimi()
Palauttaa Kerhon koko nimen

Returns:
Kerhon koko nimi merkkijononna

getLkm

public int getLkm()
Palauttaa kerhon jäsenten lukumäärän

Returns:
jäsenten 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<Jasen> iterator()
Palautetaan iteraattori jäsenistöön.

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

main

public static void main(String[] args)
Testiohjelma jäsenistölle

Parameters:
args - ei käytössä

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ä