Example #1
0
  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;
  }