code: public static boolean isUserLevelMethod(Method method) {
          Assert.notNull(method, "Method must not be null");
          return (method.isBridge() || (!method.isSynthetic() && !isGroovyObjectMethod(method)));
      }
docs: Determine whether the given method is declared by the user or at least pointing to
  a user-declared method.
  <p>Checks {@link Method#isSynthetic()} (for implementation methods) as well as the
  {@code GroovyObject} interface (for interface methods; on an implementation class,
  implementations of the {@code GroovyObject} methods will be marked as synthetic anyway).
  Note that, despite being synthetic, bridge methods ({@link Method#isBridge()}) are considered
  as user-level methods since they are eventually pointing to a user-declared generic method.
  
  @param method the method to check
  @return {@code true} if the method can be considered as user-declared; [@code false} otherwise