| TietueVertailija.java |
1 package kanta;
2
3 import java.util.Comparator;
4
5 /**
6 * Luokka joka vertaa kahta tietuetta keskenään
7 */
8 public class TietueVertailija implements Comparator<Tietue> {
9
10 private final int kenttanro;
11
12
13 /**
14 * Alustetaan vertailija vertailemaan tietyn kentän perusteella
15 * @param k vertailtavan kentän indeksi.
16 */
17 public TietueVertailija(int k) {
18 this.kenttanro = k;
19 }
20
21
22 /**
23 * Vertaa kahta tietuetta keskenään.
24 * @param t1 1. verrattava jäsen
25 * @param t2 2. verrattava jäsen
26 * @return <0 jos t1 < t2, == 0 jos t1 == t2 ja muuten >0
27 * @example
28 * <pre name="test">
29 * #THROWS CloneNotSupportedException
30 * PohjaTietue t1 = new PohjaTietue(new Kentta[]{new IntKentta("id"),
31 * new IntKentta("int"), new JonoKentta("string"), },1);
32 * PohjaTietue t2 = t1.clone();
33 * PohjaTietue t3 = t1.clone();
34 * t1.parse("1|2|bbb|");
35 * t2.parse("2|12|aaa|");
36 * t3.parse("3|2|aaa|");
37 *
38 * TietueVertailija v0 = new TietueVertailija(0);
39 * v0.compare(t1,t2) < 0 === true;
40 * v0.compare(t2,t3) < 0 === true;
41 * v0.compare(t2,t1) > 0 === true;
42 *
43 * TietueVertailija v1 = new TietueVertailija(1);
44 * v1.compare(t1,t2) < 0 === true;
45 * v1.compare(t2,t3) > 0 === true;
46 * v1.compare(t1,t3) === 0;
47 *
48 * TietueVertailija v2 = new TietueVertailija(2);
49 * v2.compare(t1,t2) > 0 === true;
50 * v2.compare(t2,t3) === 0;
51 * v2.compare(t2,t1) < 0 === true;
52 * </pre>
53 */
54 @Override
55 public int compare(Tietue t1, Tietue t2) {
56 String s1 = t1.getAvain(kenttanro);
57 String s2 = t2.getAvain(kenttanro);
58
59 return s1.compareTo(s2);
60 }
61
62 }
63