persistable asclass AbstractSSIList extends NotifyingList { *() { init(); } *(Cl l) { initAndAddAll(importSSIs(l)); } L importSSIs(Cl l) { ret map importSSI(l); } abstract MySSI importSSI(AbstractSSI ssi); BufferedImage render(WidthAndHeight size) { ret renderAll(this, size); } BufferedImage render(BufferedImage canvas) { ret renderAll(this, canvas); } BufferedImage renderOutlines(WidthAndHeight size) { ret toSSIList().renderOutlines(size); } SSIList toSSIList() { ret new SSIList(map(this, -> .toSSI())); } }