code: private static boolean isAcceptableMethod(final Method method) {
          final boolean isSynthetic = method.isSynthetic() || method.isBridge() || method.getName().contains("$");
          return Modifier.isPublic(method.getModifiers())
                  && !isSynthetic
                  && method.getDeclaringClass() != Object.class;
      }
docs: Allows only public not synthetic methods (e.g. groovy additional methods).
  Possible super$* methods also not allowed. Also, no need to evaluate bridges: bridged method would be
  properly recognized.
  
  @param method possible delegate method
  @return true if method is acceptable