emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java
changeset 392 44a5802816be
parent 391 8cddb5d3e18f
child 418 c0bbf144c2c6
     1.1 --- a/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java	Fri Dec 28 08:48:08 2012 +0100
     1.2 +++ b/emul/src/main/java/org/apidesign/bck2brwsr/emul/MethodImpl.java	Fri Dec 28 12:35:32 2012 +0100
     1.3 @@ -62,7 +62,6 @@
     1.4      private static native Object[] findMethodData(
     1.5          Class<?> clazz, String prefix);
     1.6  
     1.7 -    // XXX should not be public
     1.8      public static Method findMethod(
     1.9          Class<?> clazz, String name, Class<?>... parameterTypes) {
    1.10          Object[] data = findMethodData(clazz, name + "__");
    1.11 @@ -73,7 +72,7 @@
    1.12          return INSTANCE.create(clazz, name, data[1], sig);
    1.13      }
    1.14  
    1.15 -    public static Method[] findMethods(Class<?> clazz) {
    1.16 +    public static Method[] findMethods(Class<?> clazz, int mask) {
    1.17          Object[] namesAndData = findMethodData(clazz, "");
    1.18          int cnt = 0;
    1.19          for (int i = 0; i < namesAndData.length; i += 2) {
    1.20 @@ -85,7 +84,11 @@
    1.21              }
    1.22              String name = sig.substring(0, middle);
    1.23              sig = sig.substring(middle + 2);
    1.24 -            namesAndData[cnt++] = INSTANCE.create(clazz, name, data, sig);
    1.25 +            final Method m = INSTANCE.create(clazz, name, data, sig);
    1.26 +            if ((m.getModifiers() & mask) == 0) {
    1.27 +                continue;
    1.28 +            }
    1.29 +            namesAndData[cnt++] = m;
    1.30          }
    1.31          Method[] arr = new Method[cnt];
    1.32          for (int i = 0; i < cnt; i++) {