Subversion Repositories Integrator Subversion

Rev

Rev 182 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.ws.util;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.internal.StringMap;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.api.json.JSONConfiguration;

public class JsonUtils {

        private static Gson gsonComDataHora = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").create();
        private static Gson gsonComData = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
       
        public static String gerarObjetoJsonComDataHora(Object objeto) {
                return gsonComDataHora.toJson(objeto);
        }
       
        public static <T> T gerarObjetoInformadoComDataHora(String json, Class<T> objetoInformado){
                return gsonComDataHora.fromJson(json, objetoInformado);
        }
       
        public static String gerarObjetoJsonComData(Object objeto) {
                return gsonComData.toJson(objeto);
        }
       
        public static <T> T gerarObjetoInformadoComData(String json, Class<T> objetoInformado){
                return gsonComData.fromJson(json, objetoInformado);
        }

        @SuppressWarnings({ "rawtypes", "unchecked" })
        public static <T> List<T> gerarListaObjetoInformadoComDataHora(String json, Class<T> classeEsperada){
                List<T> lista = new ArrayList<T>();
                List<StringMap> listaObjetos = gsonComDataHora.fromJson(json, List.class);
                for(StringMap objeto : listaObjetos){
                        T objetoGerado = gsonComDataHora.fromJson(objeto.toString(), classeEsperada);
                        lista.add(objetoGerado);
                }
                return lista;
        }
       
        public static <T> List<T> gerarListaObjetoInformadoComData(String json, Type type){
                List<T> lista = gsonComData.fromJson(json, type);
                return lista;
        }
       
        public static Client gerarClientJsonWs() {
                ClientConfig clientConfig = new DefaultClientConfig();
                clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
                Client client = Client.create(clientConfig);
                return client;
        }

}