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