// serialization methods
Class[] input = new Class[]{ ObjectInputStream.class };
Class[] output = new Class[]{ ObjectOutputStream.class };
if (_managedType.getDeclaredMethod("readObject", input) != null
|| _managedType.getDeclaredMethod("writeObject", output) != null)
throw new UserException(_loc.get("detach-custom-ser", _meta));
input[0] = ObjectInput.class;
output[0] = ObjectOutput.class;
if (_managedType.getDeclaredMethod("readExternal", input) != null
|| _managedType.getDeclaredMethod("writeExternal", output) != null)
throw new UserException(_loc.get("detach-custom-extern", _meta));
// create list of all unmanaged serializable fields
BCField[] fields = _managedType.getDeclaredFields();
Collection unmgd = new ArrayList(fields.length);
for (int i = 0; i < fields.length; i++) {