public static Class getSuperclass()

in core/src/main/java/org/apache/commons/proxy2/impl/AbstractSubclassingProxyFactory.java [126:160]


    public static Class<?> getSuperclass(Class<?>[] proxyClasses)
    {
        final Class<?>[] superclasses = toNonInterfaces(proxyClasses);
        switch (superclasses.length)
        {
        case 0:
            return Object.class;
        case 1:
            final Class<?> superclass = superclasses[0];
            if (Modifier.isFinal(superclass.getModifiers()))
            {
                throw new ProxyFactoryException("Proxy class cannot extend " + superclass.getName()
                        + " as it is final.");
            }
            if (!hasSuitableDefaultConstructor(superclass))
            {
                throw new ProxyFactoryException("Proxy class cannot extend " + superclass.getName()
                        + ", because it has no visible \"default\" constructor.");
            }
            return superclass;
        default:
            final StringBuilder errorMessage = new StringBuilder("Proxy class cannot extend ");
            for (int i = 0; i < superclasses.length; i++)
            {
                Class<?> c = superclasses[i];
                errorMessage.append(c.getName());
                if (i != superclasses.length - 1)
                {
                    errorMessage.append(", ");
                }
            }
            errorMessage.append("; multiple inheritance not allowed.");
            throw new ProxyFactoryException(errorMessage.toString());
        }
    }