docs: static <K, V> PageMetadata<K, V> mergeTokenAndQueryParameters(String paginationToken, final
      ViewQueryParameters<K, V> initialParameters) {
  
          // Decode the base64 token into JSON
          String json = new String(Base64.decodeBase64(paginationToken), Charset.forName("UTF-8"));
  
          // Get a suitable Gson, we need any adapter registered for the K key type
          Gson paginationTokenGson = getGsonWithKeyAdapter(initialParameters);
  
          // Deserialize the pagination token JSON, using the appropriate K, V types
          PaginationToken token = paginationTokenGson.fromJson(json, PaginationToken.class);
  
          // Create new query parameters using the initial ViewQueryParameters as a starting point.
          ViewQueryParameters<K, V> tokenPageParameters = initialParameters.copy();
  
          // Merge the values from the token into the new query parameters
          tokenPageParameters.descending = token.descending;
          tokenPageParameters.endkey = token.endkey;
          tokenPageParameters.endkey_docid = token.endkey_docid;
          tokenPageParameters.inclusive_end = token.inclusive_end;
          tokenPageParameters.startkey = token.startkey;
          tokenPageParameters.startkey_docid = token.startkey_docid;
  
          return new PageMetadata<K, V>(token.direction, token
                  .pageNumber, tokenPageParameters);
      }