public void addReflecionMethod()

in atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/ContextImpl.java [72:103]


    public void addReflecionMethod(String mName, Class<?>[] parameterTypes,
        Class<?> clazz)
    {
        for (Method m : clazz.getDeclaredMethods())
        {
            if (mName.equals(m.getName()))
            {
                if (parameterTypes == null)
                {
                    DefaultReflectionClassConfiguration config = computeIfAbsent(
                        clazz.getName());
                    config.add(new DefaultReflectionMethodConfiguration(mName, null));
                    break;
                }
                else if (Arrays.equals(m.getParameterTypes(), parameterTypes))
                {
                    DefaultReflectionClassConfiguration config = computeIfAbsent(
                        clazz.getName());
                    String[] sParameterTypes = Stream.of(parameterTypes).sequential().map(
                        Class::getName).toArray(String[]::new);
                    config.add(
                        new DefaultReflectionMethodConfiguration(mName, sParameterTypes));
                    break;
                }
            }
        }
        Class<?> superClass = clazz.getSuperclass();
        if (superClass != null)
        {
            addReflecionMethod(mName, parameterTypes, superClass);
        }
    }