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