code: private <T> T getProxyObject(
        T originalObject, AdWordsSession session, Class<T> cls, boolean isUtility) {
      // Find the retry strategy of this class type.
      ApiRetryStrategy retryStrategy =
          ApiRetryStrategyManager.getRetryStrategy(cls.getSimpleName(), isUtility);
  
      // If no corresponding retry strategy, just use the original object instead of a wrapping proxy.
      if (retryStrategy == null) {
        return originalObject;
      }
  
      InvocationHandler invocationHandler =
          new ApiInvocationHandlerWithRateLimiter(originalObject, session, retryStrategy);
      return Reflection.newProxy(cls, invocationHandler);
    }
docs: Decide whether this RateLimiter extension is applicable to the original service / utility
  object. If so, wrap it in a proxy object with rate-limit-aware invocation handle; if not, just
  return the original object.