code: private static Object invokeValueMethod(Annotation a) {
          try {
              final Method method = Iterables.getFirst(getMethods(a.getClass(), withName("value")), null);
              assert method != null : "No 'value' method is found from " + a;
              return method.invoke(a);
          } catch (Exception e) {
              throw new IllegalStateException("An annotation @" + a.getClass().getSimpleName() +
                                              " must have a 'value' method", e);
          }
      }
docs: Returns an object which is returned by {@code value()} method of the specified annotation {@code a}.