code: protected void buildSuperJoinTree(TableAlias left, ClassDescriptor cld, String name, boolean useOuterJoin)
      {
          ClassDescriptor superCld = cld.getSuperClassDescriptor();
          if (superCld != null)
          {
              SuperReferenceDescriptor superRef = cld.getSuperReference();
              FieldDescriptor[] leftFields = superRef.getForeignKeyFieldDescriptors(cld);
              TableAlias base_alias = getTableAliasForPath(name, null, null);
              String aliasName = String.valueOf(getAliasChar()) + m_aliasCount++;
              TableAlias right = new TableAlias(superCld, aliasName, useOuterJoin, null);
  
              Join join1to1 = new Join(left, leftFields, right, superCld.getPkFields(), useOuterJoin, "superClass");
              base_alias.addJoin(join1to1);
  
              buildSuperJoinTree(right, superCld, name, useOuterJoin);
          }
      }
docs: build the Join-Information if a super reference exists
  
  @param left
  @param cld
  @param name