public Class getSuperOrInterfaceClass()

in src/main/java/org/apache/commons/ognl/enhance/ExpressionCompiler.java [284:323]


    public Class<?> getSuperOrInterfaceClass( Method m, Class<?> clazz )
    {
        if ( clazz.getInterfaces() != null && clazz.getInterfaces().length > 0 )
        {
            Class<?>[] intfs = clazz.getInterfaces();
            Class<?> intClass;

            for ( Class<?> intf : intfs )
            {
                intClass = getSuperOrInterfaceClass( m, intf );

                if ( intClass != null )
                {
                    return intClass;
                }

                if ( Modifier.isPublic( intf.getModifiers() ) && containsMethod( m, intf ) )
                {
                    return intf;
                }
            }
        }

        if ( clazz.getSuperclass() != null )
        {
            Class<?> superClass = getSuperOrInterfaceClass( m, clazz.getSuperclass() );

            if ( superClass != null )
            {
                return superClass;
            }
        }

        if ( Modifier.isPublic( clazz.getModifiers() ) && containsMethod( m, clazz ) )
        {
            return clazz;
        }

        return null;
    }