| Harrastukset.java |
1 package kerho;
2
3 import java.util.*;
4
5 import kanta.PerusTietueet;
6 import kerho.Harrastus;
7
8 /**
9 * Kerhon harrastukset, joka osaa mm. lisätä uuden harrastuksen
10 *
11 * @author Vesa Lappalainen
12 * @version 1.0, 22.02.2003
13 *
14 * @exmpale
15 * <pre name="test_lisaa_poista">
16 * // lisaa(Harrastus), poista(Harrastus)
17 * #import java.io.File;
18 * #import kanta.SailoException;
19 * Harrastukset harrasteet = new Harrastukset();
20 * Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
21 * Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
22 * Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2);
23 * Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1);
24 * Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2);
25 * harrasteet.lisaa(pitsi21);
26 * harrasteet.lisaa(pitsi11);
27 * harrasteet.lisaa(pitsi22);
28 * harrasteet.lisaa(pitsi12);
29 * harrasteet.poista(pitsi23) === false ; harrasteet.getLkm() === 4;
30 * harrasteet.poista(pitsi11) === true; harrasteet.getLkm() === 3;
31 * List<Harrastus> h = harrasteet.annaHarrastukset(1);
32 * h.size() === 1;
33 * h.get(0) === pitsi12;
34 * </pre>
35 *
36 * @example
37 * <pre name="test_tiedosto">
38 * #THROWS SailoException
39 * // lueTiedosto(String), talleta()
40 * #import java.io.File;
41 * Harrastukset harrasteet = new Harrastukset();
42 * Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
43 * Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
44 * Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2);
45 * Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1);
46 * Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2);
47 * String tiedNimi = "testikelmit";
48 * File ftied = new File(tiedNimi+".har");
49 * ftied.delete();
50 * harrasteet.lueTiedostosta(tiedNimi); #THROWS SailoException
51 * harrasteet.lisaa(pitsi21);
52 * harrasteet.lisaa(pitsi11);
53 * harrasteet.lisaa(pitsi22);
54 * harrasteet.lisaa(pitsi12);
55 * harrasteet.lisaa(pitsi23);
56 * harrasteet.talleta();
57 * harrasteet = new Harrastukset();
58 * harrasteet.lueTiedostosta(tiedNimi);
59 * Iterator<Harrastus> i = harrasteet.iterator();
60 * i.next().toString() === pitsi21.toString();
61 * i.next().toString() === pitsi11.toString();
62 * i.next().toString() === pitsi22.toString();
63 * i.next().toString() === pitsi12.toString();
64 * i.next().toString() === pitsi23.toString();
65 * i.hasNext() === false;
66 * harrasteet.lisaa(pitsi23);
67 * harrasteet.talleta();
68 * ftied.delete() === true;
69 * File fbak = new File(tiedNimi+".hbak");
70 * fbak.delete() === true;
71 * </pre>
72 *
73 * @example
74 * <pre name="test_iterator">
75 * // iterator()
76 * #PACKAGEIMPORT
77 * #import java.util.*;
78 *
79 * Harrastukset harrasteet = new Harrastukset();
80 * Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
81 * Harrastus pitsi11 = new Harrastus(1); harrasteet.lisaa(pitsi11);
82 * Harrastus pitsi22 = new Harrastus(2); harrasteet.lisaa(pitsi22);
83 * Harrastus pitsi12 = new Harrastus(1); harrasteet.lisaa(pitsi12);
84 * Harrastus pitsi23 = new Harrastus(2); harrasteet.lisaa(pitsi23);
85 *
86 * Iterator<Harrastus> i2=harrasteet.iterator();
87 * i2.next() === pitsi21;
88 * i2.next() === pitsi11;
89 * i2.next() === pitsi22;
90 * i2.next() === pitsi12;
91 * i2.next() === pitsi23;
92 * i2.next() === pitsi12; #THROWS NoSuchElementException
93 *
94 * int n = 0;
95 * int jnrot[] = {2,1,2,1,2};
96 *
97 * for ( Harrastus har:harrasteet ) {
98 * har.getJasenNro() === jnrot[n]; n++;
99 * }
100 *
101 * n === 5;
102 * </pre>
103 */
104 public class Harrastukset extends PerusTietueet<Harrastus> {
105 /**
106 * Harrastusten alustaminen
107 */
108 public Harrastukset() {
109 super(new Harrastus(),".har",".hbak");
110 }
111
112
113 /**
114 * Poistaa kaikki tietyn jäsenen harrastukset
115 * @param jasenNro viite siihen, minkä jäsenen harrastukset poistetaan
116 * @return montako poistettiin
117 * @example
118 * <pre name="test">
119 * #THROWS SailoException
120 * #import java.io.File;
121 * Harrastukset harrasteet = new Harrastukset();
122 * Harrastus pitsi21 = new Harrastus(); pitsi21.vastaaPitsinNyplays(2);
123 * Harrastus pitsi11 = new Harrastus(); pitsi11.vastaaPitsinNyplays(1);
124 * Harrastus pitsi22 = new Harrastus(); pitsi22.vastaaPitsinNyplays(2);
125 * Harrastus pitsi12 = new Harrastus(); pitsi12.vastaaPitsinNyplays(1);
126 * Harrastus pitsi23 = new Harrastus(); pitsi23.vastaaPitsinNyplays(2);
127 * harrasteet.lisaa(pitsi21);
128 * harrasteet.lisaa(pitsi11);
129 * harrasteet.lisaa(pitsi22);
130 * harrasteet.lisaa(pitsi12);
131 * harrasteet.lisaa(pitsi23);
132 * harrasteet.poistaJasenenHarrastukset(2) === 3; harrasteet.getLkm() === 2;
133 * harrasteet.poistaJasenenHarrastukset(3) === 0; harrasteet.getLkm() === 2;
134 * List<Harrastus> h = harrasteet.annaHarrastukset(2);
135 * h.size() === 0;
136 * h = harrasteet.annaHarrastukset(1);
137 * h.get(0) === pitsi11;
138 * h.get(1) === pitsi12;
139 * </pre>
140 */
141 public int poistaJasenenHarrastukset(int jasenNro) {
142 return poista(jasenNro,1);
143 }
144
145
146 /**
147 * Haetaan kaikki jäsen harrastukset
148 * @param tunnusnro jäsenen tunnusnumero jolle harrastuksia haetaan
149 * @return tietorakenne jossa viiteet löydetteyihin harrastuksiin
150 * @example
151 * <pre name="test">
152 * #import java.util.*;
153 *
154 * Harrastukset harrasteet = new Harrastukset();
155 * Harrastus pitsi21 = new Harrastus(2); harrasteet.lisaa(pitsi21);
156 * Harrastus pitsi11 = new Harrastus(1); harrasteet.lisaa(pitsi11);
157 * Harrastus pitsi22 = new Harrastus(2); harrasteet.lisaa(pitsi22);
158 * Harrastus pitsi12 = new Harrastus(1); harrasteet.lisaa(pitsi12);
159 * Harrastus pitsi23 = new Harrastus(2); harrasteet.lisaa(pitsi23);
160 * Harrastus pitsi51 = new Harrastus(5); harrasteet.lisaa(pitsi51);
161 *
162 * List<Harrastus> loytyneet;
163 * loytyneet = harrasteet.annaHarrastukset(3);
164 * loytyneet.size() === 0;
165 * loytyneet = harrasteet.annaHarrastukset(1);
166 * loytyneet.size() === 2;
167 * loytyneet.get(0) == pitsi11 === true;
168 * loytyneet.get(1) == pitsi12 === true;
169 * loytyneet = harrasteet.annaHarrastukset(5);
170 * loytyneet.size() === 1;
171 * loytyneet.get(0) == pitsi51 === true;
172 * </pre>
173 */
174 public List<Harrastus> annaHarrastukset(int tunnusnro) {
175 return annaTietueet(tunnusnro, 1);
176 }
177
178
179 /**
180 * Testiohjelma harrastuksille
181 * @param args ei käytössä
182 */
183 public static void main(String[] args) {
184 Harrastukset harrasteet = new Harrastukset();
185 Harrastus pitsi1 = new Harrastus();
186 pitsi1.vastaaPitsinNyplays(2);
187 Harrastus pitsi2 = new Harrastus();
188 pitsi2.vastaaPitsinNyplays(1);
189 Harrastus pitsi3 = new Harrastus();
190 pitsi3.vastaaPitsinNyplays(2);
191 Harrastus pitsi4 = new Harrastus();
192 pitsi4.vastaaPitsinNyplays(2);
193
194 harrasteet.lisaa(pitsi1);
195 harrasteet.lisaa(pitsi2);
196 harrasteet.lisaa(pitsi3);
197 harrasteet.lisaa(pitsi2);
198 harrasteet.lisaa(pitsi4);
199
200 System.out.println("============= Harrastukset testi =================");
201
202 List<Harrastus> harrastukset2 = harrasteet.annaHarrastukset(2);
203
204 for (Harrastus har : harrastukset2) {
205 System.out.print(har.getJasenNro() + " ");
206 har.tulosta(System.out);
207 }
208
209 }
210
211 }
212