Example usage for com.google.gson GsonBuilder registerTypeAdapterFactory

List of usage examples for com.google.gson GsonBuilder registerTypeAdapterFactory

Introduction

In this page you can find the example usage for com.google.gson GsonBuilder registerTypeAdapterFactory.

Prototype

public GsonBuilder registerTypeAdapterFactory(TypeAdapterFactory factory) 

Source Link

Document

Register a factory for type adapters.

Usage

From source file:blog.BlogHelper.java

License:Apache License

public static List<ImageHolder> loadImagesFrom(String pathname) {
    List<ImageHolder> imageHolders = new ArrayList<>();
    try {/*  ww w.  j a  va 2s .  co  m*/
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapterFactory(new ClassTypeAdapterFactory());
        gsonBuilder.registerTypeAdapter(Class.class, new ClassTypeAdapter());
        Gson gson = gsonBuilder.create();
        imageHolders
                .addAll(gson.fromJson(FileUtils.readFileToString(new File(pathname), Charset.defaultCharset()),
                        new TypeToken<List<ImageHolder>>() {
                        }.getType()));
    } catch (IOException e) {
        e.printStackTrace();
    }

    return imageHolders;
}

From source file:blog.identify.IdentifyMultipleFacesExample.java

License:Apache License

private static List<ImageHolder> candidates() throws IOException {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapterFactory(new ClassTypeAdapterFactory());
    gsonBuilder.registerTypeAdapter(Class.class, new ClassTypeAdapter());
    Gson gson = gsonBuilder.create();//www .java  2s  .  c  o  m
    return gson.fromJson(
            FileUtils.readFileToString(new File("src/test/resources/blog/sets/love_hate_candidates.json"),
                    Charset.defaultCharset()),
            new TypeToken<List<ImageHolder>>() {
            }.getType());
}

From source file:br.cefetmg.radar.services.Filter.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*  w  w w . java  2  s .  c o  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();

    try {
        IncidentDAO incidentDAO = new IncidentDAO();

        int aux1 = Integer.parseInt(request.getParameter("armed"));
        String armed = "";
        switch (aux1) {
        case -1:
            armed += "%";
            break;
        case 1:
            armed += "1";
            break;
        case 2:
            armed += "2";
            break;
        case 3:
            armed += "3";
            break;
        }

        int gender_id = Integer.parseInt(request.getParameter("gender"));
        String gender = "";
        switch (gender_id) {
        case 0:
            gender += "%' or i.user.gender is null";
            break;
        default:
            gender += Integer.toString(gender_id);
            gender += "'";
        }

        String violence = request.getParameter("violence");
        if (violence.equals("-1")) {
            violence = "false or i.violence = true";
        } else if (violence.equalsIgnoreCase("false")) {
            violence = "false";
        } else if (violence.equalsIgnoreCase("true")) {
            violence = "true";
        }
        int period = Integer.parseInt(request.getParameter("period"));
        String period_init = "";
        String period_end = "";

        switch (period) {
        case 0:
            period_init += "00:00";
            period_end += "23:59";
            break;
        case 1:
            period_init += "00:00";
            period_end += "05:59";
            break;
        case 2:
            period_init += "06:00";
            period_end += "11:59";
            break;
        case 3:
            period_init += "12:00";
            period_end += "17:59";
            break;
        case 4:
            period_init += "18:00";
            period_end += "23:59";
            break;
        }

        List<Incident> list = incidentDAO.filterIncidents(armed, gender, violence, period_init, period_end);

        ArrayList<Integer> incidents_id = new ArrayList<Integer>();

        for (int i = 0; i < list.size(); i++) {
            incidents_id.add(list.get(i).getId());
        }

        out.println(gson.toJson(incidents_id));

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }
}

From source file:br.cefetmg.radar.services.GetColors.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*  www .  j  a  v a2 s .co  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();
    try {
        ColorDAO colorDAO = new ColorDAO();

        List<Color> list = colorDAO.GetColors();

        for (int i = 0; i < list.size(); i++) {
            list.get(i).setUsers(null);
        }

        out.println(gson.toJson(list));

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }

    out.close();
}

From source file:br.cefetmg.radar.services.GetGenders.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  w  w w .  j a va2  s  .  co  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();
    try {
        GenderDAO genderDAO = new GenderDAO();

        List<Gender> list = genderDAO.GetGenders();

        for (int i = 0; i < list.size(); i++) {
            list.get(i).setUsers(null);
        }

        out.println(gson.toJson(list));

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }

    out.close();
}

From source file:br.cefetmg.radar.services.GetServices.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from   w  ww .  j  av a  2  s  . c o m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();
    try {
        ServiceDAO serviceDAO = new ServiceDAO();

        List<Incident> list = serviceDAO.GetServices();

        out.println(gson.toJson(list));

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }

    out.close();
}

From source file:br.cefetmg.radar.services.GetTransports.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from  ww w  .j a v a2  s.com*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();
    try {
        TransportDAO transportDAO = new TransportDAO();

        List<Incident> list = transportDAO.GetTransports();

        out.println(gson.toJson(list));

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }

    out.close();
}

From source file:br.cefetmg.radar.services.GetUser.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from   ww  w  . j a  v  a 2 s  .co  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    int iduser = Integer.parseInt(request.getParameter("id"));

    try (PrintWriter out = response.getWriter()) {
        try {
            UserDAO userDAO = new UserDAO();
            User user = userDAO.getById(iduser);

            if (user != null) {
                user.setIncidents(null);

                if (user.getColor() != null) {
                    user.getColor().setUsers(null);
                }

                if (user.getGender() != null) {
                    user.getGender().setUsers(null);
                }

                if (user.getLocations() != null) {
                    user.setLocations(null);
                }

                out.println(gson.toJson(user));
            } else {
                out.println(gson.toJson(new Result(Result.USER_NOT_FOUND)));
            }
        } catch (Exception ex) {
            StringBuilder error = new StringBuilder();

            for (StackTraceElement element : ex.getStackTrace()) {
                error.append(element.toString());
                error.append("\n");
            }
            out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
            response.setStatus(500);
        }
    }
}

From source file:br.cefetmg.radar.services.GetUserByUsername.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*w ww.ja va 2  s. co  m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    GsonBuilder b = new GsonBuilder();

    b.registerTypeAdapterFactory(HibernateProxyTypeAdapter.FACTORY);

    Gson gson = b.create();

    response.setContentType("text/json;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");

    PrintWriter out = response.getWriter();

    try {
        UserDAO userDAO = new UserDAO();

        String username = request.getParameter("username");

        User user = userDAO.getByUsername(username);

        if (user != null) {

            if (user.getColor() != null) {
                user.getColor().setUsers(null);
            }

            if (user.getGender() != null) {
                user.getGender().setUsers(null);
            }

            for (Incident i : user.getIncidents()) {
                i.setUser(null);
            }

            out.println(gson.toJson(user));
        } else {
            out.println(gson.toJson(new Result(Result.USER_DOESNT_EXISTS)));
            response.setStatus(404);
        }

    } catch (Exception ex) {
        StringBuilder error = new StringBuilder();

        for (StackTraceElement element : ex.getStackTrace()) {
            error.append(element.toString());
            error.append("\n");
        }
        out.println(gson.toJson(new Result(Result.ERRO, error.toString())));
        response.setStatus(500);
    }
}

From source file:cc.kave.commons.utils.json.JsonUtils.java

License:Apache License

@SafeVarargs
private static <T> void registerHierarchy(GsonBuilder gsonBuilder, Class<T> type,
        Class<? extends T>... subtypes) {
    Asserts.assertTrue(subtypes.length > 0);
    RuntimeTypeAdapterFactory<T> factory = RuntimeTypeAdapterFactory.of(type, "$type");
    for (int i = 0; i < subtypes.length; i++) {
        factory = factory.registerSubtype(subtypes[i]);
    }//from w  w  w  . java 2  s .  co  m
    gsonBuilder.registerTypeAdapterFactory(factory);
}