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