public RuleLoader findLoader()

in commons-digester3-core/src/main/java/org/apache/commons/digester3/plugins/strategies/FinderFromClass.java [101:139]


    public RuleLoader findLoader( final Digester digester, final Class<?> pluginClass, final Properties p )
        throws PluginException
    {
        final String ruleClassName = p.getProperty( ruleClassAttr );
        if ( ruleClassName == null )
        {
            // nope, user hasn't requested dynamic rules to be loaded
            // from a specific class.
            return null;
        }

        // ok, we are in business
        String methodName = null;
        if ( methodAttr != null )
        {
            methodName = p.getProperty( methodAttr );
        }
        if ( methodName == null )
        {
            methodName = dfltMethodName;
        }
        if ( methodName == null )
        {
            methodName = DFLT_METHOD_NAME;
        }

        Class<?> ruleClass;
        try
        {
            // load the plugin class object
            ruleClass = digester.getClassLoader().loadClass( ruleClassName );
        }
        catch ( final ClassNotFoundException cnfe )
        {
            throw new PluginException( "Unable to load class " + ruleClassName, cnfe );
        }

        return new LoaderFromClass( ruleClass, methodName );
    }