1 import java.io.*;
2 import fi.jyu.mit.ohj2.*;
3 import java.util.*;
4
10 public class Harrastukset {
11 private boolean muutettu = false;
12 private String tiedoston_nimi = "";
13 private String bak_nimi = "";
14 private String koko_nimi = "";
15 private Collection alkiot = new ArrayList();
16
17 public Harrastukset() { }
18
19
24 public class SailoException extends Exception {
25 public SailoException(String viesti) { super(viesti); }
26 }
27
28
32 public void lisaa(Harrastus har) {
33 alkiot.add(har);
34 }
35
36
37
42 public void lue_tiedostosta(String tied) throws SailoException {
43 tiedoston_nimi = tied + ".dat";
44 koko_nimi = "Kelmien kerho";
45 }
46
47
51 public void talleta() { }
52
53
57 public String getKoko_nimi() { return koko_nimi; }
58
59
63 public int getLkm() { return alkiot.size(); }
64
65
69 public String getTiedoston_nimi() { return tiedoston_nimi; }
70
71
75 public String getBak_nimi() { return bak_nimi; }
76
77
82 public boolean TeeBak(String bak_tark) { bak_nimi = bak_tark; return true; }
83
84
88 public Iterator iterator() {
89 return alkiot.iterator();
90 }
91
92
97 public class HarrastuksetIterator implements Iterator {
98 private int jasenid;
99 private Iterator iter = alkiot.iterator();
100 private Harrastus seuraava = null;
101
102 public HarrastuksetIterator(int jid) {
103 jasenid = jid;
104 }
105
106 public boolean hasNext() {
107 if ( seuraava != null ) return true;
108 while ( true ) {
109 if ( !iter.hasNext() ) return false;
110 seuraava = (Harrastus)iter.next();
111 if ( seuraava.getJasen_id()== jasenid ) return true;
112 }
113 }
114
115 public Object next() throws NoSuchElementException {
116 if ( seuraava != null ) {
117 Harrastus pal = seuraava;
118 seuraava = null;
119 return pal;
120 }
121 while ( true ) {
122 Harrastus har = (Harrastus)iter.next();
123 if ( har.getJasen_id()== jasenid ) return har;
124 }
125 }
126
127 public void remove() throws UnsupportedOperationException {
128 throw new UnsupportedOperationException("Me ei poisteta");
129 }
130
131 }
132
133
139 public Iterator iterator(int jasen_id) {
140 return new HarrastuksetIterator(jasen_id);
141 }
142
143 private static void testi(Object o) {
144 Harrastus har = (Harrastus)o;
145 System.out.print(har.getJasen_id() + " ");
146 har.tulosta(System.out);
147 }
148
149
153 public static void main(String args[]) {
154 Harrastukset harrasteet = new Harrastukset();
155 Harrastus pitsi1 = new Harrastus();
156 pitsi1.vastaa_pitsin_nyplays(2);
157 Harrastus pitsi2 = new Harrastus();
158 pitsi2.vastaa_pitsin_nyplays(1);
159 Harrastus pitsi3 = new Harrastus();
160 pitsi3.vastaa_pitsin_nyplays(2);
161 Harrastus pitsi4 = new Harrastus();
162 pitsi4.vastaa_pitsin_nyplays(2);
163
164 harrasteet.lisaa(pitsi1);
165 harrasteet.lisaa(pitsi2);
166 harrasteet.lisaa(pitsi3);
167 harrasteet.lisaa(pitsi2);
168 harrasteet.lisaa(pitsi4);
169
170 System.out.println("============= Harrastukset testi =================");
171
172
173 for (Iterator i=harrasteet.iterator(2); i.hasNext(); ) {
174 testi(i.next());
175 }
176 { System.out.println("============= Iteraattori testi =================");
178 Iterator i=harrasteet.iterator(2);
179 System.out.println(i.hasNext() + " " + i.hasNext());
180 testi(i.next());
181 System.out.println(i.hasNext() + " " + i.hasNext());
182 testi(i.next());
183 System.out.println(i.hasNext() + " " + i.hasNext());
184 testi(i.next());
185 System.out.println(i.hasNext() + " " + i.hasNext());
186 }
187
188 }
189
190 }
191
192
193