public final void reload ( final CClassLoaderConfig config ) { if ( this == CClassLoader . getRootLoader ( ) ) { return ; } if ( config == null ) { return ; } final CClassLoader parent = ( ( CClassLoader ) this . getParent ( ) ) ; parent . removeLoader ( this . name ) ; if ( this . isMandatory ( ) ) { CClassLoader . mandatoryLoadersMap . remove ( this . getPath ( ) ) ; } final CClassLoader newLoader = CClassLoader . getLoader ( parent . getPath ( ) + "/" + this . name ) ; newLoader . config = this . config ; newLoader . booAlone = this . booAlone ; newLoader . booMandatory = this . booMandatory ; newLoader . booResourceOnly = this . booResourceOnly ; newLoader . booDoNotForwardToParent = this . booDoNotForwardToParent ; final List list = ( List ) config . getFilesMap ( ) . get ( this . path ) ; for ( final Iterator f = list . iterator ( ) ; f . hasNext ( ) ; ) { final URL file = ( URL ) f . next ( ) ; newLoader . readDirectories ( file ) ; } final Iterator it = this . childrenMap . keySet ( ) . iterator ( ) ; while ( it . hasNext ( ) ) { final CClassLoader child = ( CClassLoader ) this . childrenMap . get ( it . next ( ) ) ; child . reload ( ) ; } this . _destroy ( null ) ; if ( newLoader . isMandatory ( ) ) { CClassLoader . mandatoryLoadersMap . put ( newLoader . getPath ( ) , newLoader ) ; } newLoader . booInit = true ; }
reload this loader