code: private static List<MethodInfo> getPublicMethodInfos(final JavaClass cls) {
          List<MethodInfo> methodInfos = new ArrayList<>();
          Method[] methods = cls.getMethods();
          for (Method m : methods) {
              if ((m.getAccessFlags() & (Const.ACC_PUBLIC | Const.ACC_PROTECTED)) != 0) {
                  ExceptionTable et = m.getExceptionTable();
                  methodInfos
                          .add(new MethodInfo(m.getName(), m.getSignature(), et == null ? null : et.getExceptionNames()));
              }
          }
          return methodInfos;
      }
docs: returns a list of method information of all public or protected methods in
  this class
  
  @param cls the class to look for methods
  @return a map of (method name)(method signature)