code: public Object getCopy(ManagedObject mo, String propName)
    {
       Object obj = get(mo.getMOR(), propName);
       try
       {
         obj = DeepCopier.deepCopy(obj);
       } catch(Exception e)
       {
         throw new RuntimeException(e);
       }
       return obj;
     }
docs: Get a copy of the cached property. You can change the returned
  object as you like
  @param mo Managed object
  @param propName property name
  @return the data object identified by the propName.
  NullObject.NULL if the data object is really null