com.sgcv.rest.jsf.web.cliente.bbean.CompraBBean.java Source code

Java tutorial

Introduction

Here is the source code for com.sgcv.rest.jsf.web.cliente.bbean.CompraBBean.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.sgcv.rest.jsf.web.cliente.bbean;

import com.sgcv.rest.jsf.web.cliente.common.RestClient;
import com.sgcv.rest.jsf.web.cliente.util.GsonConverter;
import com.sgcv.rest.jsf.web.cliente.util.JsfUtils;
import com.sgcv.rest.jsf.web.model.Compra;
import com.sgcv.rest.jsf.web.model.Proveedor;
import com.sun.jersey.api.client.ClientResponse;
import java.io.IOException;
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ConversationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import org.apache.http.client.ClientProtocolException;
import org.jboss.resteasy.client.ClientRequest;

/**
 *
 * @author alvarenga
 */
/**http://ovaraksin.blogspot.com/2012/12/get-post-with-restful-client-api.html
 * Bean getting history of the last extracted documents. 
 * Tenemos la intencin de recibir los recursos en formato JSON y convertirlos en objetos Java. 
 * El prximo bean muestra cmo hacer esta tarea para peticiones GET. 
 * Los conversos bean ClienteBBean reciben JSON en un objeto Ciemte mediante el uso de GsonConverter. 
 * Producto es un simple POJO y GsonConverter es una instancia singleton que envuelve Gson.
 */
//Conseguir la historia de los ultimos elementos extraidos
@ManagedBean
@ViewScoped
public class CompraBBean implements Serializable {

    /*anotation forma de inyectar en el controlador,
    ManagedProperty utilizar ese bean almacenado
    en la sesin actual de modo a pueda tener acceso
    a la totalidad de sus valores generador por RestClient.*/
    @ManagedProperty(value = "#{restClient}")
    private RestClient restClient;

    //Objeto pojo
    private List<Compra> documents;
    private String jsonHistory;
    //Create producto
    private List<Proveedor> proveedores;
    private Proveedor proveedor;
    private Compra compra;

    public CompraBBean() {
        limpiar();
    }

    @PostConstruct
    public void inicializar() {
        limpiar();
    }

    private void limpiar() {
        compra = new Compra();
    }

    public List<Compra> getDocuments() throws Exception {
        if (documents != null) {
            return documents;
        }
        /*//Envia el path de peticion get de producto, listado de producto
        ClientResponse response = restClient.clientGetResponse("producto");
            
        //verifica que no haya error con la pagina.. si es 200 caso de exito, sino fallo
        if (response.getStatus() != 200) {
        throw new RuntimeException("Failed service call: HTTP error code : " + response.getStatus());
        }*/
        try {
            ClientRequest request = new ClientRequest(
                    "http://localhost:8080/Rest-JSF-Web-PrimeFaces/webresources/compra");
            request.accept("application/json");
            org.jboss.resteasy.client.ClientResponse<String> response = request.get(String.class);

            if (response.getStatus() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
            }

            // get producto as JSON, el json se guarda como string
            jsonHistory = response.getEntity(String.class);

            // convert to Java array / list of Cliente instances, Convierte el json a una Lista de Productos
            //fromJson pasa de la notacion json a java, Si fuera en caso contrario se usaria toJson
            Compra[] docs = GsonConverter.getGson().fromJson(jsonHistory, Compra[].class);
            documents = Arrays.asList(docs);

            return documents;
        } catch (ClientProtocolException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        }
        return null;
    }

    public void guardar(Compra compra) {
        String input = GsonConverter.getGson().toJson(compra);
        restClient.clientPostResponse("compra", input);
        limpiar();
        JsfUtils.addInfoMessage("compra guardado correctamente!");
    }

    // getter / setter

    public RestClient getRestClient() {
        return restClient;
    }

    public void setRestClient(RestClient restClient) {
        this.restClient = restClient;
    }

    public String getJsonHistory() {
        return jsonHistory;
    }

    public void setDocuments(List<Compra> documents) {
        this.documents = documents;
    }

    public void setJsonHistory(String jsonHistory) {
        this.jsonHistory = jsonHistory;
    }

    public List<Proveedor> getProveedores() {
        return proveedores;
    }

    public Compra getProducto() {
        return compra;
    }

    public void setProveedores(List<Proveedor> proveedores) {
        this.proveedores = proveedores;
    }

    public void setCompra(Compra compra) {
        this.compra = compra;
    }

    public Proveedor getProveedor() {
        return proveedor;
    }

    public void setProveedor(Proveedor proveedor) {
        this.proveedor = proveedor;
    }

}