Warning: session_start(): open(/var/lib/php/sessions/sess_258sd25quah419t0u9o9bal8fh, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass WebNode implements _SetField {
Web web;
new L labels;
O visInfo; // visualisation info
public void _setField(S f, O x) {
if (f.equals('web)) web = (Web) x;
else if (f.equals('labels)) labels = (L) x;
else if (f.equals('visInfo)) visInfo = x;
}
*() {}
*(Web *web) { web.fireNewNode(this); }
void addLabel(S label) { addLabel(web.parseLabel(label)); }
void addLabel(Lisp label) {
if (setAdd(labels, label) && web != null)
web.index(label, this);
}
void addLabels(Collection l) { for (Lisp lbl : l) addLabel(lbl); }
void addStrings(Collection l) { for (S lbl : l) addLabel(lbl); }
bool hasLabel(Lisp label) { ret labels.contains(label); }
bool hasLabel(S label) { ret labels.contains(web.parseLabel(label)); }
toString { ret l(labels) == 1 ? str(first(labels)) : str(labels); }
int count() { ret 1 + l(labels); }
S text() { ret web.unparseLabel(first(labels)); }
L texts() { ret web.unparseLabels(labels); }
void relation(S arrow, S b) {
web.getRelation(this, web.node(b)).addLabel(arrow);
}
Lisp parseLabel(S l) { ret web.parseLabel(l); }
S unparseLabel(Lisp l) { ret web.unparseLabel(l); }
L labels() { ret labels; }
bool hasLabels() { ret nempty(labels); }
void setLabel(int i, Lisp l) { labels.set(i, l); }
}