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