public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable env) throws NamingException { Reference ref; // Can only reconstruct from a reference. if (refObj instanceof Reference) { ref = (Reference) refObj; // Make sure reference is of datasource class. if (ref.getClassName().equals(getClass().getName())) { JDO ds; RefAddr addr; try { ds = (JDO) Class.forName(ref.getClassName()).newInstance(); } catch (Exception except) { throw new NamingException(except.toString()); } addr = ref.get("description"); if (addr != null) ds._description = (String) addr.getContent(); addr = ref.get("databaseName"); if (addr != null) ds._dbName = (String) addr.getContent(); addr = ref.get("configuration"); if (addr != null) ds._dbConf = (String) addr.getContent(); addr = ref.get("lockTimeout"); if (addr != null) ds._lockTimeout = Integer.parseInt((String) addr.getContent()); addr = ref.get("transactionManager"); if (addr != null) ds._tmName = (String) addr.getContent(); return ds; } else throw new NamingException( "JDO: Reference not constructed from class " + getClass().getName()); } else if (refObj instanceof Remote) return refObj; else return null; }