code: private ReferenceDescriptorDef cloneReference(ReferenceDescriptorDef refDef, String prefix)
      {
          ReferenceDescriptorDef copyRefDef = new ReferenceDescriptorDef(refDef, prefix);
  
          copyRefDef.setOwner(this);
          // we remove properties that are only relevant to the class the features are declared in
          copyRefDef.setProperty(PropertyHelper.OJB_PROPERTY_IGNORE, null);
          
          Properties mod = getModification(copyRefDef.getName());
  
          if (mod != null)
          {
              if (!PropertyHelper.toBoolean(mod.getProperty(PropertyHelper.OJB_PROPERTY_IGNORE), false) &&
                  hasFeature(copyRefDef.getName()))
              {
                  LogHelper.warn(true,
                                 ClassDescriptorDef.class,
                                 "process",
                                 "Class "+getName()+" has a feature that has the same name as its included reference "+
                                 copyRefDef.getName()+" from class "+refDef.getOwner().getName()); 
              }
              copyRefDef.applyModifications(mod);
          }
          return copyRefDef;
      }
docs: Clones the given reference.
  
  @param refDef The reference descriptor
  @param prefix A prefix for the name
  @return The cloned reference