docs: private String getHierarchyTable(ClassDescriptorDef classDef)
      {
          ArrayList queue     = new ArrayList();
          String    tableName = null;
  
          queue.add(classDef);
  
          while (!queue.isEmpty())
          {
              ClassDescriptorDef curClassDef = (ClassDescriptorDef)queue.get(0);
  
              queue.remove(0);
  
              if (curClassDef.getBooleanProperty(PropertyHelper.OJB_PROPERTY_GENERATE_TABLE_INFO, true))
              {
                  if (tableName != null)
                  {
                      if (!tableName.equals(curClassDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE)))
                      {
                          return null;
                      }
                  }
                  else
                  {
                      tableName = curClassDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE);
                  }
              }
              for (Iterator it = curClassDef.getExtentClasses(); it.hasNext();)
              {
                  curClassDef = (ClassDescriptorDef)it.next();
  
                  if (curClassDef.getReference("super") == null)
                  {
                      queue.add(curClassDef);
                  }
              }
          }
          return tableName;
      }