1   package hirsipuu;
2   
3   /**
4    * Luokka sana-olion mallintamiseksi. Sana tiet????, mille tasolle kuuluu, sek?? arvattavan sanansa. 
5    * @author Anna-Leena Latvala, Toni Purontaka
6    * @version 0.5, 11.3.2008
7    *
8    */
9   public class Sana {
10      
11      private int tasonro;
12      private int sananro;
13      public String sana;
14      
15      /**
16       * Alustaa sanaolion mahdottomalla tasonumerolla. Oikea alustus saadaan 
17       * parsimalla Sanalistan l??hett??m?? rivi.
18       *
19       */
20      public Sana() {
21          sana = "";
22          tasonro = 0;
23          sananro = 0;
24      }
25      
26      /**
27       * Alustaa testausta varten sanaoliolle tasonumeron tid ja sanan.
28       * @param tid taso, jolle sana kuuluu
29       * @param sana sanaolion sana
30       */
31      public Sana(int tid, String sana) {
32          this.sana = sana;
33          tasonro = tid;
34      }
35  
36      /**
37       * Parsii sanan tiedot syntaktisesti oikeasta merkkijonosta muotoa
38       *  tasonro | sananro | sana       |, esimerkiksi:
39       * "1       | 2       | koira      |"
40       * 
41       * @param jono parsittava merkkijono
42       * @return true, mik?li parsiminen onnistui
43       *         false, jos syntaksi oli v??r?
44       */
45      public boolean parse(String jono) {
46          StringBuffer jonotus = new StringBuffer(jono);
47          tasonro = Jono.annaId(jonotus);
48          sananro = Jono.annaId(jonotus);
49          sana = Jono.annaMjono(jonotus);
50          return true;
51      }
52      
53      /**
54       * Palauttaa Sana-olion sanan.
55       * @return sana
56       */
57      public String getSana() {
58          return sana;
59      }
60      
61      /**
62       * Palauttaa, kuuluuko sana tasolle taso.
63       * @param taso pyydetyn tason numero
64       * @return true, jos sana kuuluu pyydetylle tasolle
65       *         false muuten
66       */
67      public boolean taso(int taso) {
68          return (taso == tasonro);
69      }
70  }
71