protected void registerSuperClassMultipleJoinedTables(ClassDescriptor cld)
    {
        /*
        arminw: Sadly, we can't map to sub class-descriptor, because it's not guaranteed
        that they exist when this method is called. Thus we map the class instance instead
        of the class-descriptor.
        */
        if(cld.getBaseClass() != null)
        {
            try
            {
                Class superClass = ClassHelper.getClass(cld.getBaseClass());
                Class currentClass = cld.getClassOfObject();
                synchronized(descriptorTable)
                {
                    List subClasses = (List) superClassMultipleJoinedTablesMap.get(superClass);
                    if(subClasses == null)
                    {
                        subClasses = new ArrayList();
                        superClassMultipleJoinedTablesMap.put(superClass,  subClasses);
                    }
                    if(!subClasses.contains(currentClass))
                    {
                        if(log.isDebugEnabled())
                        {
                            log.debug("(MultipleJoinedTables): Register sub-class '" + currentClass
                                    + "' for class '" + superClass);
                        }
                        subClasses.add(currentClass);
                    }
                }
            }
            catch(Exception e)
            {
                throw new MetadataException("Can't register super class '" + cld.getBaseClass()
                        + "' for class-descriptor: " + cld, e);
            }
        }
    }
protected void registerSuperClassMultipleJoinedTables ( ClassDescriptor cld ) { if ( cld . getBaseClass ( ) != null ) { try { Class superClass = ClassHelper . getClass ( cld . getBaseClass ( ) ) ; Class currentClass = cld . getClassOfObject ( ) ; synchronized ( descriptorTable ) { List subClasses = ( List ) superClassMultipleJoinedTablesMap . get ( superClass ) ; if ( subClasses == null ) { subClasses = new ArrayList ( ) ; superClassMultipleJoinedTablesMap . put ( superClass , subClasses ) ; } if ( ! subClasses . contains ( currentClass ) ) { if ( log . isDebugEnabled ( ) ) { log . debug ( "(MultipleJoinedTables): Register sub-class '" + currentClass + "' for class '" + superClass ) ; } subClasses . add ( currentClass ) ; } } } catch ( Exception e ) { throw new MetadataException ( "Can't register super class '" + cld . getBaseClass ( ) + "' for class-descriptor: " + cld , e ) ; } } }
Internal used! Register sub-classes of specified class when mapping class to
multiple joined tables is used. Normally this method is called by the {@link ClassDescriptor}
itself.

@param cld The {@link ClassDescriptor} of the class to register.