All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.api.ads.common.lib.client.RequestInfo Maven / Gradle / Ivy

// Copyright 2011, Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.api.ads.common.lib.client;

import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;

/**
 * Contains information about the request that was made.
 */
public class RequestInfo {

  private String payload;
  private String serviceName;
  private String methodName;
  private String url;
  private String contextName;
  private String contextValue;

  private RequestInfo() {}

  /**
   * Gets the SOAP request XML.
   */
  public String getPayload() {
    return payload;
  }

  /**
   * Gets the service name.
   */
  public String getServiceName() {
    return serviceName;
  }


  /**
   * Gets the method name.
   */
  public String getMethodName() {
    return methodName;
  }

  /**
   * Gets the URL the request was made to.
   */
  public String getUrl() {
    return url;
  }
  
  /**
   * Gets the name corresponding to {@link #getContextValue()}. For example,
   * {@code clientCustomerId} for AdWords, or {@code networkCode} for Ad Manager.
   */
  public String getContextName() {
    return contextName;
  }
  
  /**
   * Returns the context value, such as the clientCustomerId for AdWords, or the networkCode for
   * Ad Manager.
   */
  public String getContextValue() {
    return contextValue;
  }

  @Override
  public String toString() {
    return MoreObjects.toStringHelper(this)
        .add("serviceName", serviceName)
        .add("methodName", methodName)
        .add("url", url)
        .add("contextName", contextName)
        .add("contextValue", contextValue)
        // Return payload length, since the payload could be large.
        .add("payload.length", Strings.nullToEmpty(payload).length())
        .toString();
  }
  
  /**
   * Builder for {@link RequestInfo} objects.
   *
   */
  public static class Builder {

    private RequestInfo requestInfo;

    public Builder() {
      requestInfo = new RequestInfo();
    }

    /**
     * Adds a method name to the RequestInfo under construction.
     *
     * @param methodName the method name to add to the RequestInfo
     * @return this builder
     */
    public Builder withMethodName(String methodName) {
      requestInfo.methodName = methodName;
      return this;
    }

    /**
     * Adds a service name to the RequestInfo under construction.
     *
     * @param serviceName the service name to add to the RequestInfo
     * @return this builder
     */
    public Builder withServiceName(String serviceName) {
      requestInfo.serviceName = serviceName;
      return this;
    }

    /**
     * Adds the request payload to the RequestInfo under construction.
     *
     * @param payload the raw request string to add to the RequestInfo
     * @return this builder
     */
    public Builder withPayload(String payload) {
      requestInfo.payload = payload;
      return this;
    }

    /**
     * Adds the target URL to the RequestInfo under construction.
     *
     * @param url the URL that the request was made to
     * @return this builder
     */
    public Builder withUrl(String url) {
      requestInfo.url = url;
      return this;
    }
    
    /**
     * Adds the name/value pair for the context of this request.
     * @param contextName name for the value
     * @param contextValue the value
     * @return this builder
     */
    public Builder withContext(String contextName, String contextValue) {
      requestInfo.contextName = contextName;
      requestInfo.contextValue = contextValue;
      return this;
    }
    
    /**
     * Returns the RequestInfo this Builder has been constructing.
     *
     * @return the built RequestInfo object
     */
    public RequestInfo build() {
      return requestInfo;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy