Kentta.java |
1 package kanta; 2 3 /** 4 * Rajapinta tietueen yhdelle kentälle. 5 * @author vesal 6 * 7 */ 8 public interface Kentta extends Cloneable, Comparable<Kentta>{ 9 10 /** 11 * kentän arvo merkkijonona. 12 * @return kenttä merkkkijonona 13 * @example 14 * <pre name="test"> 15 * IntKentta kentta = new IntKentta("määrä"); 16 * kentta.aseta("12") === null; 17 * kentta.toString() === "12"; 18 * </pre> 19 */ 20 @Override 21 String toString(); 22 23 /** 24 * Palauttaa kentään liittyvän kysymyksen. 25 * @return kenttän liittyvä kysymys. 26 * @example 27 * <pre name="test"> 28 * IntKentta kentta = new IntKentta("määrä"); 29 * kentta.getKysymys() === "määrä"; 30 * </pre> 31 */ 32 String getKysymys(); 33 34 /** 35 * Asettaa kentän sisällön ottamalla tiedot 36 * merkkijonosta. 37 * @param jono jono josta tiedot otetaan. 38 * @return null jos sisältö on hyvä, muuten merkkijonona virhetieto 39 * @example 40 * <pre name="test"> 41 * IntKentta kentta = new IntKentta("määrä"); 42 * kentta.aseta("12") === null; kentta.getValue() === 12; 43 * kentta.aseta("k") === "Ei kokonaisluku (k)"; kentta.getValue() === 12; 44 * </pre> 45 */ 46 String aseta(String jono); 47 48 49 /** 50 * Palauttaa kentän tiedot veratiltavana merkkijonona 51 * @return vertailtava merkkijono kentästä 52 * @example 53 * <pre name="test"> 54 * IntKentta k1 = new IntKentta("määrä"); 55 * IntKentta k2 = new IntKentta("määrä"); 56 * k1.aseta("12"); k2.aseta("5"); 57 * k1.getAvain().compareTo(k2.getAvain()) > 0 === true; 58 * </pre> 59 */ 60 String getAvain(); 61 62 63 /** 64 * @return syväkopio kentästä, tehtävä jokaiseen luokkaa toimivaksi 65 * @throws CloneNotSupportedException 66 * @example 67 * <pre name="test"> 68 * #THROWS CloneNotSupportedException 69 * IntKentta k1 = new IntKentta("määrä"); 70 * k1.aseta("12"); 71 * IntKentta k2 = k1.clone(); 72 * k1.toString() === k2.toString(); 73 * k1.aseta("5"); 74 * k1.toString() == k2.toString() === false; 75 * </pre> 76 */ 77 Kentta clone() throws CloneNotSupportedException ; 78 79 80 /** 81 * @return vaakasuuntainen sijainti kentälle 82 * @example 83 * <pre name="test"> 84 * #import javax.swing.SwingConstants; 85 * IntKentta k1 = new IntKentta("määrä"); 86 * k1.getSijainti() === SwingConstants.RIGHT; 87 * </pre> 88 */ 89 int getSijainti(); 90 91 } 92