1 import java.io.*;
2 import java.util.*;
3 import fi.jyu.mit.ohj2.*;
4
11 public class Jasenet {
12 private static final int MAX_JASENIA = 5;
13 private int lkm = 0;
14 private boolean muutettu = false;
15 private String tiedoston_nimi = "";
16 private String bak_nimi = "";
17 private String koko_nimi = "";
18 private Jasen alkiot[] = new Jasen[MAX_JASENIA];
19
20 public Jasenet() { }
21
22
27 public class SailoException extends Exception {
28 public SailoException(String viesti) { super(viesti); }
29 }
30
31
36 public void lisaa(Jasen jasen) throws SailoException {
37 if ( lkm >= alkiot.length ) throw new SailoException("Liikaa alkioita");
38 alkiot[lkm] = jasen;
39 lkm++;
40 }
41
42
43
49 public Jasen anna(int i) throws SailoException {
50 if ( i < 0 || lkm <= i ) throw new SailoException("Laiton indeksi " + i);
51 return alkiot[i];
52 }
53
54
55
56
57
58
63 public void lue_tiedostosta(String tied) throws SailoException {
64 tiedoston_nimi = tied + ".dat";
65 koko_nimi = "Kelmien kerho";
66 }
67
68
72 public void talleta() { }
73
74
78 public String getKoko_nimi() { return koko_nimi; }
79
80
84 public int getLkm() { return lkm; }
85
86
90 public String getTiedoston_nimi() { return tiedoston_nimi; }
91
92
96 public String getBak_nimi() { return bak_nimi; }
97
98
103 public boolean TeeBak(String bak_tark) { bak_nimi = bak_tark; return true; }
104
105
110 public class JasenetIterator implements Iterator {
111 private int kohdalla = -1;
112
113 public boolean hasNext() {
114 return kohdalla + 1 < lkm;
117 }
118
119 public Object next() throws NoSuchElementException {
120 if ( !hasNext() ) throw new NoSuchElementException("Ei oo");
121 kohdalla++;
122 return alkiot[kohdalla];
123 }
124
125 public void remove() throws UnsupportedOperationException {
126 throw new UnsupportedOperationException("Me ei poisteta");
127 }
128 }
129
130
134 public Iterator iterator() {
135 return new JasenetIterator();
136 }
137
138
139
140
144 public static void main(String args[]) {
145 Jasenet jasenet = new Jasenet();
146
147 Jasen aku = new Jasen(), aku2 = new Jasen();
148 aku.rekisteroi(); aku.vastaa_aku_ankka();
149 aku2.rekisteroi(); aku2.vastaa_aku_ankka();
150
151 try {
152 jasenet.lisaa(aku);
153 jasenet.lisaa(aku2);
154
155 System.out.println("============= Jäsenet testi =================");
156
157 for (Iterator i=jasenet.iterator(); i.hasNext(); ) {
159 Jasen jasen = (Jasen)i.next();
161 System.out.println("Jäsen nro: " + i);
162 jasen.tulosta(System.out);
163 }
164
165 } catch ( Jasenet.SailoException ex ) {
166 System.out.println(ex.getMessage());
167 }
168 }
169
170 }
171
172
173