kerho
Class Jasenet

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

public class Jasenet
extends java.lang.Object
implements java.lang.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.
 
Field Summary
private  Jasen[] alkiot
          Taulukko jäsenistä
private  java.lang.String kokoNimi
           
private  int lkm
           
private static int MAX_JASENIA
           
private  boolean muutettu
           
private  java.lang.String tiedostonPerusNimi
           
 
Constructor Summary
Jasenet()
          Oletusmuodostaja
 
Method Summary
 Jasen anna(int i)
          Palauttaa viitteen i:teen jäseneen.
 java.lang.String getBakNimi()
          Palauttaa varakopiotiedoston nimen
 java.lang.String getKokoNimi()
          Palauttaa Kerhon koko nimen
 int getLkm()
          Palauttaa kerhon jäsenten 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<Jasen> iterator()
          Palautetaan iteraattori jäsenistöön.
 void lisaa(Jasen jasen)
          Lisää uuden jäsenen tietorakenteeseen.
 void lueTiedostosta(java.lang.String tied)
          Lukee jäsenistön tiedostosta.
static void main(java.lang.String[] args)
          Testiohjelma jäsenistölle
 void setTiedostonPerusNimi(java.lang.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
 

Field Detail

muutettu

private boolean muutettu

tiedostonPerusNimi

private java.lang.String tiedostonPerusNimi

kokoNimi

private java.lang.String kokoNimi

MAX_JASENIA

private static final int MAX_JASENIA
See Also:
Constant Field Values

lkm

private int lkm

alkiot

private Jasen[] alkiot
Taulukko jäsenistä

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 java.lang.IndexOutOfBoundsException
Palauttaa viitteen i:teen jäseneen.

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

lueTiedostosta

public void lueTiedostosta(java.lang.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 java.lang.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(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<Jasen> iterator()
Palautetaan iteraattori jäsenistöön.

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

main

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

Parameters:
args - ei käytössä