import java.io.*;
import fi.jyu.mit.ohj2.*;
import java.util.*;
public class Harrastukset {
private boolean muutettu = false;
private String tiedoston_nimi = "";
private String bak_nimi = "";
private String koko_nimi = "";
private Collection alkiot = new ArrayList();
public Harrastukset() { }
public class SailoException extends Exception {
public SailoException(String viesti) { super(viesti); }
}
public void lisaa(Harrastus har) {
alkiot.add(har);
}
public void lue_tiedostosta(String tied) throws SailoException {
tiedoston_nimi = tied + ".dat";
koko_nimi = "Kelmien kerho";
}
public void talleta() { }
public String getKoko_nimi() { return koko_nimi; }
public int getLkm() { return alkiot.size(); }
public String getTiedoston_nimi() { return tiedoston_nimi; }
public String getBak_nimi() { return bak_nimi; }
public boolean TeeBak(String bak_tark) { bak_nimi = bak_tark; return true; }
public Iterator iterator() {
return alkiot.iterator();
}
public class HarrastuksetIterator implements Iterator {
private int jasenid;
private Iterator iter = alkiot.iterator();
private Harrastus seuraava = null;
public HarrastuksetIterator(int jid) {
jasenid = jid;
}
public boolean hasNext() {
if ( seuraava != null ) return true;
while ( true ) {
if ( !iter.hasNext() ) return false;
seuraava = (Harrastus)iter.next();
if ( seuraava.getJasen_id()== jasenid ) return true;
seuraava = null;
}
}
public Object next() throws NoSuchElementException {
if ( !hasNext() ) throw new NoSuchElementException("Ei oo");
Harrastus pal = seuraava;
seuraava = null;
return pal;
}
public void remove() throws UnsupportedOperationException {
throw new UnsupportedOperationException("Me ei poisteta");
}
}
public Iterator iterator(int jasen_id) {
return new HarrastuksetIterator(jasen_id);
}
private static void testi(Object o) {
Harrastus har = (Harrastus)o;
System.out.print(har.getJasen_id() + " ");
har.tulosta(System.out);
}
public static void main(String args[]) {
Harrastukset harrasteet = new Harrastukset();
Harrastus pitsi1 = new Harrastus();
pitsi1.vastaa_pitsin_nyplays(2);
Harrastus pitsi2 = new Harrastus();
pitsi2.vastaa_pitsin_nyplays(1);
Harrastus pitsi3 = new Harrastus();
pitsi3.vastaa_pitsin_nyplays(2);
Harrastus pitsi4 = new Harrastus();
pitsi4.vastaa_pitsin_nyplays(2);
harrasteet.lisaa(pitsi1);
harrasteet.lisaa(pitsi2);
harrasteet.lisaa(pitsi3);
harrasteet.lisaa(pitsi2);
harrasteet.lisaa(pitsi4);
System.out.println("============= Harrastukset testi =================");
for (Iterator i=harrasteet.iterator(2); i.hasNext(); ) {
testi(i.next());
}
{ System.out.println("============= Iteraattori testi =================");
Iterator i=harrasteet.iterator(2);
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
testi(i.next());
System.out.println(i.hasNext() + " " + i.hasNext());
}
}
}