docs: private ClassDescriptor getItemClassDescriptor(ObjectReferenceDescriptor ord, List hintClasses)
      {   
          DescriptorRepository repo = ord.getClassDescriptor().getRepository();
  
          if (hintClasses == null || hintClasses.isEmpty())
          {
              return repo.getDescriptorFor(ord.getItemClass()); 
          }
          
          Class resultClass = (Class) hintClasses.get(0);
          
          for (Iterator iter = hintClasses.iterator(); iter.hasNext();)
          {
              Class clazz = (Class) iter.next();
              Class superClazz = clazz.getSuperclass();
  
              if (superClazz != null && resultClass.equals(superClazz.getSuperclass()))
              {
                  continue; // skip if we already have a super superclass 
              }
             
              if (hintClasses.contains(superClazz))
              {
                  resultClass = superClazz;   // use superclass if it's in the hints
              }
          }
  
          return repo.getDescriptorFor(resultClass);
      }