// value is true or false (persistent/transient) // but may be extended in the future svoid addToPersistenceInfo(O o, S field, O value) { if (o == null) ret; synchronized(o) { Map pi = cast getOpt _persistenceInfo(o); if (pi == null) setOpt(o, _persistenceInfo := pi = new LinkedHashMap); else syncMapPut2(pi, field, value); } }