Warning: session_start(): open(/var/lib/php/sessions/sess_ig3k3hfi5qplpofrg971o57krd, 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
// still efficient when used to build a list recursively
persistable sclass ConcatOnDemandList extends RandomAccessAbstractList {
new LL parts;
L completeList;
*(L... parts) { fOr (part : parts) addPart(part); }
void addPart(L part) { parts.add(part); }
public int size() { ret completeList().size(); }
public A get(int i) { ret completeList().get(i); }
L completeList() {
if (parts != null) {
new L out;
for (part : parts)
collect(part, out);
parts = null;
completeList = out;
}
ret completeList;
}
void collect(L part, L out) {
if (part == null) ret;
if (part cast ConcatOnDemandList)
part.collectInto(out);
else
out.addAll(part);
}
void collectInto(L out) {
if (parts != null)
for (part : parts)
collect(part, out);
else
out.addAll(completeList);
}
}