public String prepare() throws XDocletException
    {
        String             checkLevel = (String)getDocletContext().getConfigParam(CONFIG_PARAM_CHECKS);
        ArrayList          queue      = new ArrayList();
        ClassDescriptorDef classDef, baseDef;
        XClass             original;
        boolean            isFinished;

        // determine inheritance relationships
        for (Iterator it = _model.getClasses(); it.hasNext();)
        {
            classDef   = (ClassDescriptorDef)it.next();
            original   = classDef.getOriginalClass();
            isFinished = false;
            queue.clear();
            while (!isFinished)
            {
                if (original == null)
                {
                    isFinished = true;
                    for (Iterator baseIt = queue.iterator(); baseIt.hasNext();)
                    {
                        original = (XClass)baseIt.next();
                        baseDef  = _model.getClass(original.getQualifiedName());
                        baseIt.remove();
                        if (baseDef != null)
                        {
                            classDef.addDirectBaseType(baseDef);
                        }
                        else
                        {
                            isFinished = false;
                            break;
                        }
                    }
                }
                if (!isFinished)
                {    
                    if (original.getInterfaces() != null)
                    {
                        for (Iterator baseIt = original.getInterfaces().iterator(); baseIt.hasNext();)
                        {
                            queue.add(baseIt.next());
                        }
                    }
                    if (original.getSuperclass() != null)
                    {
                        queue.add(original.getSuperclass());
                    }
                    original = null;
                }
            }
        }
        try
        {
            _model.process();
            _model.checkConstraints(checkLevel);
        }
        catch (ConstraintException ex)
        {
            throw new XDocletException(ex.getMessage());
        }
        return "";
    }
public String prepare ( ) throws XDocletException { String checkLevel = ( String ) getDocletContext ( ) . getConfigParam ( CONFIG_PARAM_CHECKS ) ; ArrayList queue = new ArrayList ( ) ; ClassDescriptorDef classDef , baseDef ; XClass original ; boolean isFinished ; for ( Iterator it = _model . getClasses ( ) ; it . hasNext ( ) ; ) { classDef = ( ClassDescriptorDef ) it . next ( ) ; original = classDef . getOriginalClass ( ) ; isFinished = false ; queue . clear ( ) ; while ( ! isFinished ) { if ( original == null ) { isFinished = true ; for ( Iterator baseIt = queue . iterator ( ) ; baseIt . hasNext ( ) ; ) { original = ( XClass ) baseIt . next ( ) ; baseDef = _model . getClass ( original . getQualifiedName ( ) ) ; baseIt . remove ( ) ; if ( baseDef != null ) { classDef . addDirectBaseType ( baseDef ) ; } else { isFinished = false ; break ; } } } if ( ! isFinished ) { if ( original . getInterfaces ( ) != null ) { for ( Iterator baseIt = original . getInterfaces ( ) . iterator ( ) ; baseIt . hasNext ( ) ; ) { queue . add ( baseIt . next ( ) ) ; } } if ( original . getSuperclass ( ) != null ) { queue . add ( original . getSuperclass ( ) ) ; } original = null ; } } } try { _model . process ( ) ; _model . checkConstraints ( checkLevel ) ; } catch ( ConstraintException ex ) { throw new XDocletException ( ex . getMessage ( ) ) ; } return "" ; }
Processes all classes (flattens the hierarchy such that every class has declarations for all fields,
references,collections that it will have in the descriptor) and applies modifications (removes ignored
features, changes declarations).

@return  An empty string
@doc.tag type="content"