/**
   * Call webservice to obtain specific JDBC string for country.
   *
   * @param c country
   * @return JDBC connection string or null if error
   */
  public JdbcXml doGetJdbc(Country c) {
    JdbcXml execute;
    RequestBuilder rb = new RequestBuilder();
    rb.withURI(getUrl().toString());
    rb.withMethod("GET");
    rb.withContentType("application/xml");
    rb.withEntity(c.getCountry());
    Request r = rb.build();

    try {
      execute = (JdbcXml) execute(r, JdbcXml.class);
    } catch (Exception e) {
      throw new DbLocatorException(e);
    }
    return execute;
  }
  /**
   * Smoke test for webserice.
   *
   * @return current date of server string representation.
   */
  public String smokeTest() {
    RequestBuilder rb = new RequestBuilder();
    rb.withURI(getUrl().toString() + "/test");
    rb.withMethod("GET");
    rb.withContentType("text/plain");
    Request r = rb.build();

    Object execute;
    try {
      execute = execute(r);
    } catch (Exception e) {
      throw new OnlineWebException(e);
    }

    return (String) execute;
  }
  /**
   * Call webservice to obtain all JDBC strings.
   *
   * @return all JDBC strings or null if error
   */
  public JdbcsXml doGetJdbcs() {
    JdbcsXml xml;
    RequestBuilder rb = new RequestBuilder();
    rb.withURI(getUrl().toString());
    rb.withMethod("GET");
    rb.withContentType("application/xml");
    Request r = rb.build();

    Object execute;
    try {
      execute = execute(r, JdbcsXml.class);
    } catch (Exception e) {
      throw new DbLocatorException(e);
    }
    xml = (JdbcsXml) execute;

    return xml;
  }
  /**
   * users/1/apps/1/countries/1/params/locale
   *
   * @return parameter filled with values from ws call
   */
  @SuppressWarnings("UnusedDeclaration")
  public Parameter resolveParam(Builder c) {
    Parameter xml;
    RequestBuilder rb = new RequestBuilder();
    final Context ctx = c.build();
    StringBuilder sb = new StringBuilder("users/" + ctx.getUserId());
    sb.append("/apps/").append(ctx.getApplication());
    sb.append("/countries/").append(ctx.getCountry());
    sb.append("/params/").append(ctx.getParam());
    rb.withURI(getUrl().toString() + sb.toString());
    rb.withMethod("GET");
    rb.withContentType("application/xml");
    Request r = rb.build();

    Object execute;
    try {
      execute = execute(r, Parameter.class);
    } catch (Exception e) {
      throw new OnlineWebException(e);
    }
    xml = (Parameter) execute;

    return xml;
  }