AMADEUS html plain
This sketchy text is generated by AMADEUS
import java.util.*;
class Sketch
class Sketch extends Scheme
Sketch(byte t, Branch br, BaseLanguage bl)
konstruktor
super(t, bl);
parent = null;
insert(br, 0);
lisada talle ka haru br
Sketch(byte t, BaseLanguage bl)
konstruktor
super(t, bl);
parent = null;
static boolean isMonoLanguage(Sketch s, byte langType)
? s.baseLanguage.type != langType
<======false
Branch br = s.branch(0);
? br.baseLanguage.type != langType
<======false
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? (o instanceof Sketch) && (!isMonoLanguage((Sketch)o, langType))
<==========false
<======true
ylemklassi meetodite realisatsioonid
void insert(PrimitiveMember pm, int i)
lisada lihtliige
System.out.println
("Sketch: illegal attempt to insert primitive member!");
System.exit(0);
void insert(Sketch sk, int i)
lisada alamskeem
System.out.println
("Sketch: illegal attempt to insert subsketch!");
System.exit(0);
void insert(Branch br, int i)
lisada haru
br.parent = this;
body.insertElementAt(br, i);
void add(Branch br)
lisada haru viimaseks
!! kui enne oli vaid liikmeteta haru, siis selle asemele
insert(br, body.size());
? body.size() == 2
? branch(0).body.size() == 0
removeMember(0);
void removeMember(int i)
eemaldada i-s liige
? (isMono())
System.out.println
("Sketch: illegal attempt to remove the single branch!");
System.exit(0);
body.removeElementAt(i);
int level()
taseme leidmine
<======0
<======parent.level() + 1
boolean isMono()
<======body.size() == 1
public boolean containsModule()
kas leidub MODULE tüüpi alamskeem
ALGJAVA jaoks
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? o instanceof Sketch
Sketch s = (Sketch)o;
? s.type == Scheme.MODULE
<==================true
<==============true
<======false
Branch branch(int i)
<======(Branch)(body.elementAt(i))
boolean isSimpleMono()
? (type != Scheme.SIMPLE)
<======false
<======false
<======false
? (branch(0).type != Scheme.SIMPLE)
<======false
? (branch(0).head.size() != 0)
<======false
<======true
boolean isAllMono()
<======false
Branch br = branch(0);
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? (o instanceof Sketch) && (!((Sketch)o).isAllMono())
<==========false
<======true
boolean isPlainText()
<======false
iga haru liige peab olema yherealine, kommentaarita
Branch br = branch(0);
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? (o instanceof Scheme)
<==========false
PrimitiveMember p = (PrimitiveMember)o;
? (p.type != Primitive.SIMPLE)
<==========false
? (p.text.rows.size() != 1)
<==========false
? (p.text.comment.elements.size() != 1)
<==========false
<======true
boolean isRichModel()
<======true
* int j = 0, m = head.size(); j < m; j++
? primitiveHead(j).isRichModel()
<==========true
* int i = 0, n = body.size(); i < n; i++
? branch(i).isRichModel()
<==========true
<======false
Sketch makeCopy()
Sketch res = makeCopyRecurs();
res.incrementArrows(-level());
<======res
Sketch makeCopyRecurs()
noolepikkused jaa"vad muutmata
Sketch res = new Sketch((byte)0, new Branch((byte)0, null), null);
res.type = type;
skeemi tyyp
pa"is
* int i=0; i < head.size(); i++
PrimitiveHead h = primitiveHead(i);
res.insert(h.makeCopy(), i);
keha
* int i=0; i < body.size(); i++
Branch br = branch(i).makeCopyRecurs();
br.parent = res;
res.insert(br, i+1);
res.removeMember(0);
baaskeel
res.baseLanguage =
BaseLanguage.newBaseLanguage(baseLanguage.type);
kommentaar
res.comment = comment.makeCopy();
res.parent = null;
ylemus
View.set(res, view.type);
vaade
res.icon = icon;
ikoniseerituse tunnus
<======res
void open()
eeld: on pa"iseta ja yhe haruga ja pole va"limine
ei sisalda nooli sellele tasemele
sisemiste noolte (tase > this.level) va"h. 1 vo~rra
incrementArrows(level(), -1);
int no = parent.body.indexOf(this);
eemaldada ylemusest
parent.body.removeElementAt(no);
lisada haru liikmed ylemusse
Branch br = (Branch)(member(0));
* int i = 0; i < br.body.size(); i++
Object o = br.member(i);
? (o instanceof Sketch)
((Sketch)o).parent = br;
parent.insert((Sketch)o, no++);
<------
? (o instanceof Arrow)
Arrow ar = (Arrow)o;
parent.insert(ar, no++);
<------
parent.insert((PrimitiveMember)o, no++);
public boolean containsArrow(int l)
kas leidub nool tasemele l
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? (o instanceof Arrow)
Arrow ar = (Arrow)o;
<==================true
<------
? (o instanceof Sketch)
? (((Sketch)o).containsArrow(l))
<==============true
<======false
public boolean containsSubsketch()
kas leidub alamskeem
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? (o instanceof Sketch)
<==============true
<======false
public void incrementArrows(int l, int n)
nooled tasemele e, e >= l suurend. (2*)n vo~rra
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? (o instanceof Arrow)
Arrow ar = (Arrow)o;
? (ar.level >= l)
ar.level += 2*n;
<------
? (o instanceof Sketch)
((Sketch)o).incrementArrows(l, n);
public void incrementArrows(int incr)
suurendab ko~igi noolte otsatasemed incr vo~rra
(taval. toomisel ja kopeerimisel, ka incr < 0)
(samuti peale open())
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? (o instanceof Arrow)
Arrow ar = (Arrow)o;
ar.level += incr;
ar.adjustType();
<------
? (o instanceof Sketch)
((Sketch)o).incrementArrows(incr);
public void withdrawArrows(int level)
(tugevad) nooled tasemele level no~rgaks
* Enumeration ee = body.elements(); ee.hasMoreElements();
harud
Branch br = (Branch)(ee.nextElement());
* Enumeration e = br.body.elements(); e.hasMoreElements();
liikmed
Object o = e.nextElement();
? (o instanceof Arrow)
Arrow ar = (Arrow)o;
? (ar.level == level)
ar.level--;
ar.type = Arrow.WEAK;
<------
? (o instanceof Sketch)
((Sketch)o).withdrawArrows(level);
void setDefaultTextColorAndFont()
esialgu vaid ALGJAVA jaoks
skeemi kommentaar:
comment.setStyle(Default.commentColor, Default.font);
päis
* int i=0, n = head.size(); i < n ; i++
PrimitiveHead h = primitiveHead(i);
h.text.setStyle(Default.sketchHeadColor, Default.font);
h.text.comment.setStyle(Default.commentColor, Default.font);
keha
* int i=0, n = body.size(); i < n; i++
Branch br = branch(i);
br.comment.setStyle(Default.commentColor, Default.font);
haru päis
* int j=0, m = br.head.size(); j < m ; j++
PrimitiveHead h = br.primitiveHead(j);
h.text.setStyle(Default.branchHeadColor, Default.font);
h.text.comment.setStyle(Default.commentColor, Default.font);
haru keha
* int j = 0, m = br.body.size(); j < m; j++
Object o = br.member(j);
? o instanceof Sketch
((Sketch)o).setDefaultTextColorAndFont();
<------
Primitive p = (Primitive)o;
? p.type == Primitive.CONDITION
p.text.setStyle(Default.conditionColor, Default.font);
<======
? p.type == Primitive.BREAKPOINT
p.text.setStyle(Default.breakpointColor, Default.font);
<======
p.text.setStyle(Default.foregroundColor, Default.font);
p.text.comment.setStyle(Default.commentColor, Default.font);