AMADEUS html plain
package ee.ut.kiho.graaf;
/**
* Graafi tipp.
* Tipu nimi on tühikuteta sõne kujul "VMK",
* kus M on tipu märgend; K on kujul "[x;y]", kus x, y on tipu ekraanikoordinaadid;
* märgend võib puududa, märgend ei sisalda tühikut, nurksulge ega semikoolonit.
*
Ekraanikoordinaadid planeeritakse (ümber) graafi toimetamisel ekraanil.
*
V on null või enam väljakirjeldust kujul "väljaNimi=väljaVäärtus;";
* väljaNimi on identifikaator, väljaVäärtus on arv literaalina.
* @author Jüri Kiho
*/
public class Tipp
private String nimi;
nimi on tühikuteta sõne kujul märgend[x;y]
kus x, y on tipu ekraanikoordinaadid; märgend võib puududa
märgend ei sisalda nurksulge ja semikoolonit
ekraanikoordinaadid planeeritakse (ümber) graafi toimetamisel ekraanil
konstruktorid
nime ja selle elementide lugemine
public String nimi()
doc Piilumeetod.
@return
Selle tipu välja nimi
väärtus.
return nimi;
public String märgend()
doc Selle tipu märgend (nime osa enne koordinaate).
@return
Selle tipu märgend: välja nimi
algusosa kuni sümbolini '[' (või lõpuni).
int k = nimi.indexOf("[");
if (k == -1)
return nimi.substring(0, k);
public int x()
doc Selle tipu x-koordinaat.
*
Eeldus: koordinaadid on tipu nimes olemas.
@return
Selle tipu x-koordinaat (nimest ... [x;y]).
int k = nimi.indexOf("[");
String s = nimi.substring(k+1);
k = s.indexOf(";");
s = s.substring(0, k);
return Integer.parseInt(s);
public int y()
doc Selle tipu y-koordinaat.
*
Eeldus: koordinaadid on tipu nimes olemas.
@return
Selle tipu y-koordinaat (nimest ... [x;y]).
int k = nimi.indexOf("[");
String s = nimi.substring(k+1);
k = s.indexOf(";");
int k1 = s.indexOf("]");
s = s.substring(k+1, k1);
return Integer.parseInt(s);
public String väli(String väljaNimi)
nime ja selle elementide seadmine
public void seadaNimi(String nimi)
doc Sellele tipule nime omistamine.
@param
nimi omistatav nimi.
this.nimi = nimi;
public void seadaMärgend(String s)
doc Sellele tipule märgendi omistamine.
*
Tipu nimes asendatakse märgend (koordinaatide ees olev prefiks) antud sõnega s
.
@param
s omistatav märgend.
int k = nimi.indexOf("[");
if (k == -1)
else
seadaNimi(s + nimi.substring(k));
public void seadaKoordinaadid(int x, int y)
doc Sellele tipule koordinaatide omistamine.
*
Tipu nimes, osas "[x;y]" (kui selline leidub) asendatakse koordinaadid x ja y.
@param
x x-koordinaadi uus väärtus
@param
y y-koordinaadi uus väärtus.
Antud: tipp t ja (uued) koordinaadid
Tulemus: nimes asendatud [x;y]
String s = nimi;
int k = nimi.indexOf("[");
if (k != -1)
s = nimi.substring(0, k);
nimi = s + "[" + x + ";" + y + "]";
public void seadaVäli(String väljaNimi, String väljaVäärtus)
doc Selle tipu väljale väärtuse omistamine / välja loomine.
*
Antud nimega väljale omistatakse antud väärtus.
*
Kui antud nimega välja selle tipu märgendis ei ole, siis lisatakse antud nime ja antud väärtusega väli.
@param
väljaNimi välja nimi, mille väärtust soovitakse muuta
@param
väljaVäärtus omistatav (uus) väärtus.
int k = nimi.indexOf(väljaNimi + "=");
if (k == -1)
nimi = väljaNimi + "="+ väljaVäärtus + ";" + nimi;
return;
String algusosa = nimi.substring(0, k + väljaNimi.length() + 1);
String lõpuosa = nimi.substring(k + väljaNimi.length() + 1);
k = lõpuosa.indexOf(";");
if (k == -1)
lõpuosa = lõpuosa.substring(k);
nimi = algusosa + väljaVäärtus + lõpuosa;