TYPE
- Minkä tyyppisiä tietueita talletetaanpublic class PerusTietueet<TYPE extends Tietue> extends java.lang.Object implements Tietueet<TYPE>
public static class Harrastus extends PerusTietue { private Kentta kentat[] = { new IntKentta("id"), new IntKentta("jäsenId"), new JonoKentta("ala"), new IntKentta("aloitusvuosi"), new IntKentta("h/vko") }; private static int seuraavaNro = 1; public Harrastus() { } public Harrastus(int jnro) { ((IntKentta)(kentat[1])).setValue(jnro); }
Constructor and Description |
---|
PerusTietueet(TYPE malli)
Rakenteen alustaminen.
|
PerusTietueet(TYPE malli,
java.lang.String tark,
java.lang.String baktark)
Rakenteen alustaminen.
|
Modifier and Type | Method and Description |
---|---|
TYPE |
annaId(int id)
Etsii tietueen id:n perusteella
|
java.util.List<TYPE> |
annaTietueet(int viiteNro,
int k)
Haetaan kaikki tietyn viitteen tietueet
|
java.util.List<TYPE> |
etsi(java.lang.String hakuehto,
int k)
Palauttaa "taulukossa" hakuehtoon vastaavien tietueiden viitteet
|
java.lang.String |
getBakNimi()
Palauttaa varakopiotiedoston nimen
|
java.lang.String |
getBaktark() |
int |
getLkm()
Palauttaa tietueiden lukumäärän
|
java.lang.String |
getTark() |
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<TYPE> |
iterator()
Iteraattori kaikkien harrastusten läpikäymiseen
|
void |
korvaaTaiLisaa(TYPE tietue)
Korvaa tietueen tietorakenteessa.
|
void |
lisaa(TYPE har)
Lisää uuden tietueen tietorakenteeseen.
|
protected void |
lueAlkurivit(java.io.BufferedReader fi)
Lukee rivit tiedoston alusta
|
void |
lueTiedostosta(java.lang.String tied)
Lukee PerusTietueet tiedostosta.
|
TYPE |
luoUusi()
Luodaan uusi talletettavan kaltainen olio.
|
int |
poista(int id)
Poistaa tietueen jolla on valittu tunnusnumero
|
int |
poista(int viiteNro,
int k)
Poistaa kaikki tietyn viitteen tietueet PerusTietueet
|
boolean |
poista(TYPE tietue)
Poistaa valitun tietueen
|
void |
setBaktark(java.lang.String baktark) |
void |
setMuutos()
Laitetaan muutos, jolloin pakotetaan tallentamaan.
|
void |
setTark(java.lang.String tark) |
void |
setTiedostonPerusNimi(java.lang.String tied)
Asettaa tiedoston perusnimen ilman tarkenninta
|
void |
talleta()
Tallentaa PerusTietueet tiedostoon.
|
protected void |
teeAlkutalletus(java.io.PrintWriter fo)
Tiedoston alkuun tulevat rivit
|
public PerusTietueet(TYPE malli)
malli
- malliolio, jonka kloonilla voi luoda uusiapublic PerusTietueet(TYPE malli, java.lang.String tark, java.lang.String baktark)
malli
- malliolio, jonka kloonilla voi luoda uusiatark
- tiedoston tarkenninbaktark
- backuptiedoston tarkennin, jos null, ei tehdäpublic TYPE luoUusi()
public void lisaa(TYPE har)
public void korvaaTaiLisaa(TYPE tietue)
korvaaTaiLisaa
in interface Tietueet<TYPE extends Tietue>
tietue
- lisätäävän tietueen viite. Huom tietorakenne muuttuu omistajaksi#THROWS CloneNotSupportedException #PACKAGEIMPORT PerusTietueetharrastukset = new PerusTietueet(new Harrastus()); Harrastus har1 = new Harrastus(), har2 = new Harrastus(); har1.rekisteroi(); har2.rekisteroi(); harrastukset.getLkm() === 0; harrastukset.korvaaTaiLisaa(har1); harrastukset.getLkm() === 1; harrastukset.korvaaTaiLisaa(har2); harrastukset.getLkm() === 2; Harrastus har3 = har1.clone(); har3.aseta(2,"kkk"); Iterator i2=harrastukset.iterator(); i2.next() === har1; harrastukset.korvaaTaiLisaa(har3); harrastukset.getLkm() === 2; i2=harrastukset.iterator(); Harrastus h = i2.next(); h === har3; h == har3 === true; h == har1 === false;
public boolean poista(TYPE tietue)
poista
in interface Tietueet<TYPE extends Tietue>
tietue
- poistettava tietue#THROWS SailoException #import java.io.File; PerusTietueetharrasteet = new PerusTietueet(new Harrastus()); 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.annaTietueet(1,1); h.size() === 1; h.get(0) === pitsi12;
public int poista(int id)
poista
in interface Tietueet<TYPE extends Tietue>
id
- poistettavan tietueen tunnusnumeroPerusTietueetharrastukset = new PerusTietueet(new Harrastus()); Harrastus har1 = new Harrastus(), har2 = new Harrastus(), har3 = new Harrastus(); har1.rekisteroi(); har2.rekisteroi(); har3.rekisteroi(); int id1 = har1.getTunnusNro(); harrastukset.lisaa(har1); harrastukset.lisaa(har2); harrastukset.lisaa(har3); harrastukset.poista(id1+1) === 1; harrastukset.poista(id1+1) === 0; harrastukset.getLkm() === 2; harrastukset.poista(id1) === 1; harrastukset.getLkm() === 1; harrastukset.poista(id1+3) === 0; harrastukset.getLkm() === 1;
public int poista(int viiteNro, int k)
poista
in interface Tietueet<TYPE extends Tietue>
viiteNro
- viite siihen, mihin liittyvät tietueet poistetaank
- mistä kentästä täytyy vastaava numero löytyä#THROWS SailoException #import java.io.File; PerusTietueetharrasteet = new PerusTietueet(new Harrastus()); 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,1) === 3; harrasteet.getLkm() === 2; harrasteet.poista(3,1) === 0; harrasteet.getLkm() === 2; List h = harrasteet.annaTietueet(2,1); h.size() === 0; h = harrasteet.annaTietueet(1,1); h.get(0) === pitsi11; h.get(1) === pitsi12;
public void lueTiedostosta(java.lang.String tied) throws SailoException
lueTiedostosta
in interface Tietueet<TYPE extends Tietue>
tied
- tiedoston nimen alkuosaSailoException
- jos lukeminen epäonnistuu#THROWS SailoException #import java.io.File; PerusTietueetharrasteet = new PerusTietueet(new Harrastus()); 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+".dat"); 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 PerusTietueet(new Harrastus()); 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+".bak"); fbak.delete() === true;
protected void lueAlkurivit(java.io.BufferedReader fi) throws java.io.IOException, SailoException
fi
- virta josta luetaanjava.io.IOException
- jos jokin menee vikaanSailoException
- jos tieto virheellistäprotected void teeAlkutalletus(java.io.PrintWriter fo)
fo
- virta johon talletetaanpublic void talleta() throws SailoException
talleta
in interface Tietueet<TYPE extends Tietue>
SailoException
- jos talletus epäonnistuupublic int getLkm()
public void setTiedostonPerusNimi(java.lang.String tied)
setTiedostonPerusNimi
in interface Tietueet<TYPE extends Tietue>
tied
- tallennustiedoston perusnimipublic java.lang.String getTiedostonPerusNimi()
getTiedostonPerusNimi
in interface Tietueet<TYPE extends Tietue>
public java.lang.String getTiedostonNimi()
getTiedostonNimi
in interface Tietueet<TYPE extends Tietue>
public java.lang.String getBakNimi()
getBakNimi
in interface Tietueet<TYPE extends Tietue>
public java.util.Iterator<TYPE> iterator()
iterator
in interface java.lang.Iterable<TYPE extends Tietue>
iterator
in interface Tietueet<TYPE extends Tietue>
#PACKAGEIMPORT #import java.util.*; PerusTietueetharrasteet = new PerusTietueet(new Harrastus()); 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;
public java.util.List<TYPE> annaTietueet(int viiteNro, int k)
annaTietueet
in interface Tietueet<TYPE extends Tietue>
viiteNro
- etsittävän viitteen tunnusnumero jolle tietueita haetaank
- etsittävän kentän numero#import java.util.*; PerusTietueetharrasteet = new PerusTietueet(new Harrastus()); 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.annaTietueet(3,1); loytyneet.size() === 0; loytyneet = harrasteet.annaTietueet(1,1); loytyneet.size() === 2; loytyneet.get(0) == pitsi11 === true; loytyneet.get(1) == pitsi12 === true; loytyneet = harrasteet.annaTietueet(5,1); loytyneet.size() === 1; loytyneet.get(0) == pitsi51 === true;
public java.util.List<TYPE> etsi(java.lang.String hakuehto, int k)
etsi
in interface Tietueet<TYPE extends Tietue>
hakuehto
- hakuehtok
- etsittävän kentän indeksi#THROWS SailoException PerusTietueetharrastukset = new PerusTietueet(new Harrastus()); Harrastus har1 = new Harrastus(); har1.parse("1|2|Possujen jahtaaminen|1940|22"); Harrastus har2 = new Harrastus(); har2.parse("2|1|Poikien hoitaminen|1953|1"); Harrastus har3 = new Harrastus(); har3.parse("3|2|Kelmien kerho|1948|20"); Harrastus har4 = new Harrastus(); har4.parse("4|1|Kalastus|1947|20"); Harrastus har5 = new Harrastus(); har5.parse("5|3|Viulu|1952|15"); harrastukset.lisaa(har1); harrastukset.lisaa(har2); harrastukset.lisaa(har3); harrastukset.lisaa(har4); harrastukset.lisaa(har5); List loytyneet; loytyneet = harrastukset.etsi("*s*",2); loytyneet.size() === 2; loytyneet.get(0) == har4 === true; loytyneet.get(1) == har1 === true; loytyneet = harrastukset.etsi("*5*",3); loytyneet.size() === 2; loytyneet.get(0) == har5 === true; loytyneet.get(1) == har2 === true;
public TYPE annaId(int id)
annaId
in interface Tietueet<TYPE extends Tietue>
id
- tunnusnumero, jonka mukaan etsitäänPerusTietueetharrastukset = new PerusTietueet(new Harrastus()); Harrastus har1 = new Harrastus(); har1.parse("1|2|Possujen jahtaaminen|1940|22"); Harrastus har2 = new Harrastus(); har2.parse("2|1|Poikien hoitaminen|1953|1"); Harrastus har3 = new Harrastus(); har3.parse("3|2|Kelmien kerho|1948|20"); harrastukset.lisaa(har1); harrastukset.lisaa(har2); harrastukset.lisaa(har3); harrastukset.annaId(1) == har1 === true; harrastukset.annaId(2) == har2 === true; harrastukset.annaId(3) == har3 === true;
public void setMuutos()
public java.lang.String getTark()
public void setTark(java.lang.String tark)
tark
- tiedoston tarkenninpublic java.lang.String getBaktark()
public void setBaktark(java.lang.String baktark)
baktark
- backup tiedostojen tarkennin