public RuleLoader findLoader()

in commons-digester3-core/src/main/java/org/apache/commons/digester3/plugins/PluginManager.java [122:157]


    public RuleLoader findLoader( final Digester digester, final String id, final Class<?> pluginClass, final Properties props )
        throws PluginException
    {

        // iterate over the list of RuleFinders, trying each one
        // until one of them locates a source of dynamic rules given
        // this specific plugin class and the associated declaration
        // properties.
        final Log log = LogUtils.getLogger( digester );
        final boolean debug = log.isDebugEnabled();
        log.debug( "scanning ruleFinders to locate loader.." );

        final List<RuleFinder> ruleFinders = pluginContext.getRuleFinders();
        RuleLoader ruleLoader = null;
        for ( final Iterator<RuleFinder> i = ruleFinders.iterator(); i.hasNext() && ruleLoader == null; )
        {

            final RuleFinder finder = i.next();
            if ( debug )
            {
                log.debug( "checking finder of type " + finder.getClass().getName() );
            }
            try
            {
                ruleLoader = finder.findLoader( digester, pluginClass, props );
            }
            catch ( final PluginException e )
            {
                throw new PluginException( "Unable to locate plugin rules for plugin" + " with id [" + id + "]"
                    + ", and class [" + pluginClass.getName() + "]" + ":" + e.getMessage(), e.getCause() );
            }
        }
        log.debug( "scanned ruleFinders." );

        return ruleLoader;
    }