Package ar.com.restba

Source Code of ar.com.restba.DefaultRestBAClient

package ar.com.restba;

import ar.com.restba.connectors.RestBAConnector;
import ar.com.restba.connectors.con.RestBAConnection;
import ar.com.restba.exception.RestBAException;

/**
* Es la implementación por default de {@link RestBAClient} Esta clase es una de
* las más importante de todas, porque es la que hay que instanciar para poder
* usar esta libreria.
*
*
* @author Nicolás Mélendez | Email: nfmelendez@gmail.com | Twitter: @nfmelendez
*
*/
public class DefaultRestBAClient implements RestBAClient {

  /**
   * Es el connector de RestFB que utilizamos para hacernos de todas las
   * bondades de esta excelente libreria.
   */
  private RestBAConnector restFbConnector;

  public DefaultRestBAClient(String host) {
    restFbConnector = new RestBAConnector(host);
  }

  public DefaultRestBAClient() {
    restFbConnector = new RestBAConnector();
  }

  /**
   * Accede a los datos de la ciudad de Buenos Aires mediante una Query. Esta
   * query tiene que ser como se describe en
   * http://www.elasticsearch.org/guide/reference/api/search/uri-request.html
   *
   * Y se tiene que evitar los parametros from y size en la URL, ya que son
   * manejados internamente por el Iterator.
   *
   * @param query
   *            Una query para traer datos, nunca nula o null. Que cumple con
   *            http://www.elasticsearch.org/guide/reference/api/search/uri-
   *            request.html y no envie como parametro ni from y ni size. Ya
   *            que esto lo maneja internamente el iterator.
   * @param connectionType
   *            El Tipo de dato que va a tratar de Mapear RestBA. Si se quiere
   *            json usar fetchConnectionRestBaAsJson. Nunca null.
   * @return Devuelve una puntero que trae paginas de a 10 elementos.
   */
  @Override
  public <T> RestBAConnection<T> fetchConnectionRestBA(String query,
      Class<T> connectionType) {

    if (null == query || "".equals(query)) {
      throw new RestBAException("The query can't be null or empty");
    }

    if (null == connectionType) {
      throw new RestBAException("The connectionType can't be null");
    }

    if (query.toLowerCase().contains("from=")) {
      throw new RestBAException(
          "From parameter should not be in the query"
              + " because connection pointer abstractions use that.");
    }

    if (query.toLowerCase().contains("size=")) {
      throw new RestBAException(
          "Size parameter should not be in the query"
              + " because connection pointer abstractions use that.");
    }

    RestBAConnection<T> fetchConnectionRestBA = restFbConnector
        .fetchConnectionRestBA(query, connectionType, 0);
    return fetchConnectionRestBA;
  }

  @Override
  public <T> T executeQuery(String query, Class<T> objectType) {
    T result = restFbConnector.executeQuery(query, objectType);
    return result;
  }

}
TOP

Related Classes of ar.com.restba.DefaultRestBAClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.