// beforeAnySet throws plain Exception to allow overriding implementations
 // to throw any flavor needed.
 protected void beforeAnySet() throws Exception {
   if (DO.isReadOnly()) throw new DataObjectException(DO + " is read-only.");
 }