public static boolean isMethodParameterTypeAllowed()

in modules/aop-ext/src/main/java/org/apache/ignite/internal/util/gridify/GridifyUtils.java [212:238]


    public static boolean isMethodParameterTypeAllowed(Class<?> cls) {
        for (Class<?> mtdReturnType : ALLOWED_MTD_PARAM_TYPES) {
            if (mtdReturnType.equals(cls))
                return true;
        }

        if (cls.isArray())
            return true;

        int mod = cls.getModifiers();

        if (!Modifier.isInterface(mod) && !Modifier.isAbstract(mod) && Collection.class.isAssignableFrom(cls)) {
            Constructor[] ctors = cls.getConstructors();

            for (Constructor ctor : ctors) {
                try {
                    if (ctor.getParameterTypes().length == 0 && ctor.newInstance() != null)
                        return true;
                }
                catch (InstantiationException | InvocationTargetException | IllegalAccessException e) {
                    // No-op.
                }
            }
        }

        return false;
    }