kerho
Class Jasen

java.lang.Object
  extended by kerho.Jasen
All Implemented Interfaces:
Cloneable

public class Jasen
extends Object
implements Cloneable

Kerhon jäsen joka osaa mm. itse huolehtia tunnusNro:staan. Jäsenen käsittely kenttätaulukon avulla. Jäsen osaa palautta i:n kentän arvon ja kysymyksen.

Version:
1.0, 22.02.2003, 1.3, 02.04.2003, 1.4, 01.04.2008, 1.5, 01.01.2011
Author:
Vesa Lappalainen

Nested Class Summary
static class Jasen.Vertailija
          Luokka joka vertaa kahta jäsentä keskenään
 
Constructor Summary
Jasen()
          Alustetaan jäsenen merkkijono-attribuuti tyhjiksi jonoiksi ja tunnusnro = 0.
 
Method Summary
 String anna(int k)
          Antaa k:n kentän sisällön merkkijonona
 String aseta(int k, String jono)
          Asettaa k:n kentän arvoksi parametrina tuodun merkkijonon arvon
 Jasen clone()
          Tehdään identtinen klooni jäsenestä
 int ekaKentta()
          Eka kenttä joka on mielekäs kysyttäväksi
 boolean equals(Jasen jasen)
          Tutkii onko jäsenen tiedot samat kuin parametrina tuodun jäsenen tiedot
 boolean equals(Object o)
           
 String getAvain(int k)
          Antaa k:n kentän sisällön avain-merkkijonona jonka perusteella voi lajitella
 int getKenttia()
          Palauttaa jäsenen kenttien lukumäärän
 String getKysymys(int k)
          Palauttaa k:tta jäsenen kenttää vastaavan kysymyksen
 String getNimi()
           
 int getTunnusnro()
          Palauttaa jäsenen tunnusnumeron.
 int hashCode()
           
static void main(String[] args)
          Testiohjelma jäsenelle.
 void parse(String rivi)
          Selvittää jäsenen tiedot | erotellusta merkkijonosta Pitää huolen että seuraavaNro on suurempi kuin tuleva tunnusNro.
static int rand(int ala, int yla)
          Arvotaan satunnainen kokonaisluku välille [ala,yla]
 int rekisteroi()
          Antaa jäsenelle seuraavan rekisterinumeron.
 String toString()
          Palauttaa jäsenen tiedot merkkijonona jonka voi tallentaa tiedostoon.
 void tulosta(OutputStream os)
          Tulostetaan henkilön tiedot
 void tulosta(PrintStream out)
          Tulostetaan henkilön tiedot
 void tulosta(PrintWriter out)
          Tulostetaan henkilön tiedot
 void vastaaAkuAnkka()
          Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle.
 void vastaaAkuAnkka(String apuhetu)
          Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Jasen

public Jasen()
Alustetaan jäsenen merkkijono-attribuuti tyhjiksi jonoiksi ja tunnusnro = 0.

Method Detail

getNimi

public String getNimi()
Returns:
jäsenen nimi
Example:
   Jasen aku = new Jasen();
   aku.vastaaAkuAnkka();
   aku.getNimi() =R= "Ankka Aku .*"
 

getKenttia

public int getKenttia()
Palauttaa jäsenen kenttien lukumäärän

Returns:
kenttien lukumäärä

ekaKentta

public int ekaKentta()
Eka kenttä joka on mielekäs kysyttäväksi

Returns:
eknn kentän indeksi

anna

public String anna(int k)
Antaa k:n kentän sisällön merkkijonona

Parameters:
k - monenenko kentän sisältö palautetaan
Returns:
kentän sisältö merkkijonona

getAvain

public String getAvain(int k)
Antaa k:n kentän sisällön avain-merkkijonona jonka perusteella voi lajitella

Parameters:
k - monenenko kentän sisältö palautetaan
Returns:
kentän sisältö merkkijonona
Example:
   Jasen aku = new Jasen();
   aku.parse("   1  |  Ankka Aku   | 030201-111C");
   aku.getAvain(0) === "         1";
   aku.getAvain(1) === "ANKKA AKU";
   aku.getAvain(2) === "010203-111C";
   aku.getAvain(20) === "";
 

aseta

public String aseta(int k,
                    String jono)
Asettaa k:n kentän arvoksi parametrina tuodun merkkijonon arvon

Parameters:
k - kuinka monennen kentän arvo asetetaan
jono - jonoa joka asetetaan kentän arvoksi
Returns:
null jos asettaminen onnistuu, muuten vastaava virheilmoitus.
Example:
   Jasen jasen = new Jasen();
   jasen.aseta(1,"Ankka Aku") === null;
   jasen.aseta(2,"kissa") =R= "Hetu liian lyhyt"
   jasen.aseta(2,"030201-1111") === "Tarkistusmerkin kuuluisi olla C"; 
 

getKysymys

public String getKysymys(int k)
Palauttaa k:tta jäsenen kenttää vastaavan kysymyksen

Parameters:
k - kuinka monennen kentän kysymys palautetaan (0-alkuinen)
Returns:
k:netta kenttää vastaava kysymys
   Jasen jasen = new Jasen();
   jasen.getKysymys(1) === "nimi";
   jasen.getKysymys(2) === "hetu";
 

rand

public static int rand(int ala,
                       int yla)
Arvotaan satunnainen kokonaisluku välille [ala,yla]

Parameters:
ala - arvonnan alaraja
yla - arvonnan yläraja
Returns:
satunnainen luku väliltä [ala,yla]

vastaaAkuAnkka

public void vastaaAkuAnkka(String apuhetu)
Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle.

Parameters:
apuhetu - hetu joka annetaan henkilölle

vastaaAkuAnkka

public void vastaaAkuAnkka()
Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle. Henkilötunnus arvotaan, jotta kahdella jäsenellä ei olisi samoja tietoja.


tulosta

public void tulosta(PrintWriter out)
Tulostetaan henkilön tiedot

Parameters:
out - tietovirta johon tulostetaan

tulosta

public void tulosta(OutputStream os)
Tulostetaan henkilön tiedot

Parameters:
os - tietovirta johon tulostetaan

tulosta

public void tulosta(PrintStream out)
Tulostetaan henkilön tiedot

Parameters:
out - tietovirta johon tulostetaan

rekisteroi

public int rekisteroi()
Antaa jäsenelle seuraavan rekisterinumeron.

Returns:
jäsenen uusi tunnusNro
Example:
   Jasen aku1 = new Jasen();
   aku1.getTunnusnro() === 0;
   aku1.rekisteroi();
   Jasen aku2 = new Jasen();
   aku2.rekisteroi();
   int n1 = aku1.getTunnusnro();
   int n2 = aku2.getTunnusnro();
   n1 === n2-1;
 

getTunnusnro

public int getTunnusnro()
Palauttaa jäsenen tunnusnumeron.

Returns:
jäsenen tunnusnumero

toString

public String toString()
Palauttaa jäsenen tiedot merkkijonona jonka voi tallentaa tiedostoon.

Overrides:
toString in class Object
Returns:
jäsen tolppaeroteltuna merkkijonona
Example:
   Jasen jasen = new Jasen();
   jasen.parse("   3  |  Ankka Aku   | 030201-111C");
   jasen.toString().startsWith("3|Ankka Aku|030201-111C|") === true; // on enemmäkin kuin 3 kenttää, siksi loppu |
 

parse

public void parse(String rivi)
Selvittää jäsenen tiedot | erotellusta merkkijonosta Pitää huolen että seuraavaNro on suurempi kuin tuleva tunnusNro.

Parameters:
rivi - josta jäsenen tiedot otetaan
Example:
   Jasen jasen = new Jasen();
   jasen.parse("   3  |  Ankka Aku   | 030201-111C");
   jasen.getTunnusnro() === 3;
   jasen.toString().startsWith("3|Ankka Aku|030201-111C|") === true; // on enemmäkin kuin 3 kenttää, siksi loppu |

   jasen.rekisteroi();
   int n = jasen.getTunnusnro();
   jasen.parse(""+(n+20));       // Otetaan merkkijonosta vain tunnusnumero
   jasen.rekisteroi();           // ja tarkistetaan että seuraavalla kertaa tulee yhtä isompi
   jasen.getTunnusnro() === n+20+1;
     
 

clone

public Jasen clone()
            throws CloneNotSupportedException
Tehdään identtinen klooni jäsenestä

Overrides:
clone in class Object
Returns:
Object kloonattu jäsen
Throws:
CloneNotSupportedException
Example:
 #THROWS CloneNotSupportedException 
   Jasen jasen = new Jasen();
   jasen.parse("   3  |  Ankka Aku   | 123");
   Jasen kopio = jasen.clone();
   kopio.toString() === jasen.toString();
   jasen.parse("   4  |  Ankka Tupu   | 123");
   kopio.toString().equals(jasen.toString()) === false;
 

equals

public boolean equals(Jasen jasen)
Tutkii onko jäsenen tiedot samat kuin parametrina tuodun jäsenen tiedot

Parameters:
jasen - jäsen johon verrataan
Returns:
true jos kaikki tiedot samat, false muuten
Example:
   Jasen jasen1 = new Jasen();
   jasen1.parse("   3  |  Ankka Aku   | 030201-111C");
   Jasen jasen2 = new Jasen();
   jasen2.parse("   3  |  Ankka Aku   | 030201-111C");
   Jasen jasen3 = new Jasen();
   jasen3.parse("   3  |  Ankka Aku   | 030201-115H");
   
   jasen1.equals(jasen2) === true;
   jasen2.equals(jasen1) === true;
   jasen1.equals(jasen3) === false;
   jasen3.equals(jasen2) === false;
 

equals

public boolean equals(Object o)
Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)
Example:
   Jasen jasen1 = new Jasen();
   jasen1.parse("   3  |  Ankka Aku   | 030201-111C");
   jasen1.equals("kissa") === false;
 

hashCode

public int hashCode()
Overrides:
hashCode in class Object
See Also:
Object.hashCode()

main

public static void main(String[] args)
Testiohjelma jäsenelle.

Parameters:
args - ei käytössä