if (pd.getPropertyType().isAssignableFrom(PersistentBean.class)) {
if (PersistentBean.class.isAssignableFrom(pd.getPropertyType())) {
  private PersistentBean relatedPeristentBean(PersistentBean pb, PropertyDescriptor pd) {    assert pb != null;    assert pd != null;    PersistentBean result = null;    if (pd.getPropertyType().isAssignableFrom(PersistentBean.class)) {      Method rm = pd.getReadMethod();      if (rm != null) {        // found a property that returns a related bean; get it        try {          result = (PersistentBean)rm.invoke(pb, null);        }        catch (IllegalArgumentException iaExc) {          assert false : "Should not happen, since there are no " //$NON-NLS-1$                         + "arguments, and the implicit argument is " //$NON-NLS-1$                         + "not null and of the correct type"; //$NON-NLS-1$        }        catch (IllegalAccessException e) {          assert false : "IllegalAccessException should not happen: " + e;        }        catch (InvocationTargetException e) {          assert false : "InvocationTargetException should not happen: " + e;        }        catch (NullPointerException e) {          assert false : "NullPointerException should not happen: " + e;        }        /* ExceptionInInitializerError can occur with invoke, but we do not         take into account errors */      }    }    return result;  }