DAO { public static <T> T reload(T obj) { return asWrapper(obj).reload(); } private  DAO(); static IODocumentWrapper asWrapper(Object obj); static ODocument asDocument(Object obj); static T loadFromDocument(T obj, ODocument doc); static T save(T obj); static T reload(T obj); static T create(Class<T> interfaceClass, Class<?>... additionalInterfaces); static T create(Class<T> interfaceClass, String className, Class<?>... additionalInterfaces); static T provide(Class<T> interfaceClass, ORID iRID, Class<?>... additionalInterfaces); static T provide(Class<T> interfaceClass, ODocument doc, Class<?>... additionalInterfaces); @SuppressWarnings("unchecked") static T provide(Class<T> interfaceClass, ODocumentWrapper docWrapper, Class<?>... additionalInterfaces); @SuppressWarnings("unchecked") static T dao(Class<T> interfaceClass, Class<?>... additionalInterfaces); static OSchemaHelper describe(OSchemaHelper helper, Class<?>... classes);  }
@Test public void testMirroring() { IDAOTestClass doc = tester.getApplication().getServiceInstance(IDAOTestClass.class); doc.lookupToBoolean("root"); assertNotNull(doc.getDocument()); Object reloadRet = doc.reload(); assertTrue(reloadRet == doc); }