persistable sclass AbstractSSIList extends NotifyingList { *() { init(); } *(Cl l) { initAndAddAll(importSSIs(l)); } L importSSIs(Cl l) { ret map importSSI(l); } // overridable AbstractSSI importSSI(AbstractSSI ssi) { ret 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())); } }