List of usage examples for com.google.gson.reflect TypeToken getType
public final Type getType()
From source file:org.wso2.msf4j.internal.router.ParamConvertUtils.java
License:Open Source License
/** * Creates a converter function that converts value into a {@link List}, {@link Set} or {@link SortedSet}. * * @param resultType Result type/*from w w w . j a va2s.co m*/ * @return A converter function or {@code null} if the given type is not a {@link ParameterizedType} with raw type * as {@link List}, {@link Set} or {@link SortedSet}. Also, for {@link SortedSet} type, if the element type * doesn't implements {@link Comparable}, {@code null} is returned. */ @SuppressWarnings("unchecked") private static Function<List<String>, Object> createCollectionConverter(TypeToken<?> resultType) { final Class<?> rawType = resultType.getRawType(); // Collection. It must be List or Set if (rawType != List.class && rawType != Set.class && rawType != SortedSet.class) { return null; } // Must be ParameterizedType if (!(resultType.getType() instanceof ParameterizedType)) { return null; } // Must have 1 type parameter ParameterizedType type = (ParameterizedType) resultType.getType(); if (type.getActualTypeArguments().length != 1) { return null; } // For SortedSet, the entry type must be Comparable. Type elementType = type.getActualTypeArguments()[0]; if (rawType == SortedSet.class && !Comparable.class.isAssignableFrom(TypeToken.get(elementType).getRawType())) { return null; } //We only support List type for java.io.File if (elementType == File.class && rawType != List.class) { throw new IllegalArgumentException("File doesn't support " + rawType); } // Get the converter for the collection element. final Function<List<String>, Object> elementConverter = createQueryParamConverter(elementType); return new Function<List<String>, Object>() { @Override public Object apply(List<String> values) { Collection<? extends Comparable> collection; if (rawType == List.class) { collection = new ArrayList<>(); } else if (rawType == Set.class) { collection = new HashSet<>(); } else { collection = new TreeSet<>(); } if (values != null) { for (String value : values) { add(collection, elementConverter.apply(Collections.singletonList(value))); } } return collection; } @SuppressWarnings("unchecked") private <T> void add(Collection<T> collection, Object element) { collection.add((T) element); } }; }
From source file:org.wso2.security.tools.advisorytool.output.html.SecurityAdvisoryHTMLOutputGenerator.java
License:Open Source License
/** * Generating the html string for a given security advisory. * @param securityAdvisory/*from w w w .j a va2 s .co m*/ * @return * @throws AdvisoryToolException */ protected String generateAdvisoryHTML(SecurityAdvisory securityAdvisory) throws AdvisoryToolException { TypeToken<Map<String, Object>> typeToken = new TypeToken<Map<String, Object>>() { }; Gson gson = new Gson(); String htmlString; try { TemplateLoader loader = new ClassPathTemplateLoader(); loader.setPrefix(Constants.SECURITY_ADVISORY_HTML_TEMPLATE_DIRECTORY); loader.setSuffix(".hbs"); Handlebars handlebars = new Handlebars(loader); Template template = handlebars.compile(Constants.SECURITY_ADVISORY_HTML_TEMPLATE); String jsonString = gson.toJson(securityAdvisory); Map<String, Object> pdfInfoMap = gson.fromJson(jsonString, typeToken.getType()); Context context = Context.newBuilder(pdfInfoMap).build(); htmlString = template.apply(context); } catch (IOException e) { throw new AdvisoryToolException("Failed to generate the Security Advisory HTML.", e); } return htmlString; }
From source file:password.pwm.util.java.JsonUtil.java
License:Open Source License
public static <T> T deserialize(final String jsonString, final TypeToken typeToken) { return JsonUtil.getGson().fromJson(jsonString, typeToken.getType()); }
From source file:purchase.AddUpdatePurchaseBill.java
/** * Processes requests for both HTTP//from w w w . j a v a2s .c om * <code>GET</code> and * <code>POST</code> methods. * * @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 { final String headerJson = request.getParameter("header"); final String detailJson = request.getParameter("detail"); PurchaseControllerHeaderModel header = new Gson().fromJson(headerJson, PurchaseControllerHeaderModel.class); TypeToken<List<PurcahseControllerDetailModel>> token = new TypeToken<List<PurcahseControllerDetailModel>>() { }; List<PurcahseControllerDetailModel> detail = new Gson().fromJson(detailJson, token.getType()); response.getWriter().print(saveVoucher(header, (ArrayList<PurcahseControllerDetailModel>) detail)); }
From source file:purchaseReturn.AddUpdatePurchaseReturnBill.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.// w w w.j av a2s . 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 { final String headerJson = request.getParameter("header"); final String detailJson = request.getParameter("detail"); SalesReturnControllerHeaderModel header = new Gson().fromJson(headerJson, SalesReturnControllerHeaderModel.class); TypeToken<List<SalesReturnControllerDetailModel>> token = new TypeToken<List<SalesReturnControllerDetailModel>>() { }; List<SalesReturnControllerDetailModel> detail = new Gson().fromJson(detailJson, token.getType()); response.getWriter().print(saveVoucher(header, (ArrayList<SalesReturnControllerDetailModel>) detail)); }
From source file:sales.AddUpdateSalesBill.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.// www . java 2s . 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 { final String headerJson = request.getParameter("header"); final String detailJson = request.getParameter("detail"); SalesControllerHeaderModel header = new Gson().fromJson(headerJson, SalesControllerHeaderModel.class); TypeToken<List<SalesControllerDetailModel>> token = new TypeToken<List<SalesControllerDetailModel>>() { }; List<SalesControllerDetailModel> detail = new Gson().fromJson(detailJson, token.getType()); response.getWriter().print(saveVoucher(header, (ArrayList<SalesControllerDetailModel>) detail)); }
From source file:saulmm.avengers.model.rest.CharacterItemAdapterFactory.java
License:Mozilla Public License
private <T> T adaptJsonToCharacter(JsonElement jsonElement, TypeToken<T> type) { JsonObject jsonObject = jsonElement.getAsJsonObject(); if (jsonObject.has("data")) { JsonElement marvelDataElement = jsonObject.get("data"); JsonObject marvelDataObject = marvelDataElement.getAsJsonObject(); if (marvelDataObject.get("count").getAsInt() == 1) { JsonArray marvelResults = marvelDataObject.get("results").getAsJsonArray(); JsonElement finalElement = marvelResults.get(0); return new Gson().fromJson(finalElement, type.getType()); }/*from w w w . ja v a 2 s. c o m*/ } return null; }
From source file:saulmm.avengers.model.rest.CharacterItemAdapterFactory.java
License:Mozilla Public License
private <T> T adaptJsonToComic(JsonElement jsonElement, TypeToken<T> type) { JsonObject jsonObject = jsonElement.getAsJsonObject(); if (jsonObject.has("data")) { JsonElement marvelDataElement = jsonObject.get("data"); JsonObject marvelDataObject = marvelDataElement.getAsJsonObject(); if (marvelDataObject.get("count").getAsInt() > 0) { JsonElement marvelResultsElement = marvelDataObject.get("results"); JsonArray marvelResults = marvelResultsElement.getAsJsonArray(); JsonElement finalElement = marvelResults.get(0); JsonObject comicObject = finalElement.getAsJsonObject(); if (comicObject.has("pageCount") && comicObject.has("isbn")) { return new Gson().fromJson(marvelResultsElement, type.getType()); }/*from w ww . ja v a2 s .c o m*/ } } return null; }
From source file:series.AppUpdateSeriesMaster.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./*from w w w. j a v a 2 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 { final DBHelper helper = DBHelper.GetDBHelper(); final Connection dataConnection = helper.getConnMpAdmin(); final Library lb = Library.getInstance(); String sr_cd = request.getParameter("sr_cd"); String sr_alias = request.getParameter("sr_alias"); final String sr_name = request.getParameter("sr_name"); final String model_cd = request.getParameter("model_cd"); final String memory_cd = request.getParameter("memory_cd"); final String opb_qty = request.getParameter("opb_qty"); final String opb_val = request.getParameter("opb_val"); final String color_cd = request.getParameter("color_cd"); final String user_id = request.getParameter("user_id"); final String detailJson = request.getParameter("detail"); TypeToken<List<OPBSrVal>> token = new TypeToken<List<OPBSrVal>>() { }; List<OPBSrVal> detail = new Gson().fromJson(detailJson, token.getType()); final JsonObject jResultObj = new JsonObject(); if (dataConnection != null) { try { String sql = ""; if (sr_cd.equalsIgnoreCase("")) { sql = "INSERT INTO SERIESMST (SR_ALIAS,SR_NAME,MODEL_CD,MEMORY_CD,COLOUR_CD,OPB_QTY,OPB_VAL,USER_ID ,SR_CD) VALUES (?,?,?,?,?,?,?,?,?)"; sr_cd = lb.generateKey(dataConnection, "SERIESMST", "SR_CD", "S", 7); } else { SeriesMasterDelete smu = new SeriesMasterDelete(dataConnection); smu.seriesUpdate(sr_cd, "1"); sql = "UPDATE SERIESMST SET SR_ALIAS=?,SR_NAME=?,MODEL_CD=?,MEMORY_CD=?,COLOUR_CD=?,OPB_QTY=?,OPB_VAL=?,USER_ID=?,EDIT_NO=EDIT_NO+1,TIME_STAMP=CURRENT_TIMESTAMP where SR_CD=?"; } PreparedStatement pstLocal = dataConnection.prepareStatement(sql); pstLocal.setString(1, sr_alias); pstLocal.setString(2, sr_name); pstLocal.setString(3, model_cd); pstLocal.setString(4, memory_cd); pstLocal.setString(5, color_cd); pstLocal.setString(6, opb_qty); pstLocal.setString(7, opb_val); pstLocal.setString(8, user_id); pstLocal.setString(9, sr_cd); pstLocal.executeUpdate(); if (!detail.isEmpty()) { for (int i = 0; i < detail.size(); i++) { if (detail.get(i).getRef_no().equalsIgnoreCase("")) { detail.get(i).setRef_no(lb.generateKey(dataConnection, "TAG", "REF_NO", "T", 7)); sql = "insert into TAG (REF_NO,TAG_NO,SR_CD,IMEI_NO,SERAIL_NO,PUR_RATE,PUR_REF_NO,BASIC_PUR_RATE,GODOWN," + "BRANCH_CD) values (?,?,?,?,?,?,?,?,?,?)"; pstLocal = dataConnection.prepareStatement(sql); pstLocal.setString(1, detail.get(i).getRef_no()); pstLocal.setString(2, detail.get(i).getTag_no()); pstLocal.setString(3, sr_cd); pstLocal.setString(4, detail.get(i).getImei()); pstLocal.setString(5, detail.get(i).getSerial()); pstLocal.setDouble(6, detail.get(i).getP_rate()); pstLocal.setString(7, "OPB"); pstLocal.setDouble(8, detail.get(i).getP_rate()); pstLocal.setString(9, "0"); pstLocal.setString(10, detail.get(i).getBranch_cd()); pstLocal.executeUpdate(); } else { sql = "update TAG set PUR_RATE=?,BASIC_PUR_RATE=?,BRANCH_CD=? where ref_no=?"; pstLocal = dataConnection.prepareStatement(sql); pstLocal.setDouble(1, detail.get(i).getP_rate()); pstLocal.setDouble(2, detail.get(i).getP_rate()); pstLocal.setString(3, detail.get(i).getBranch_cd()); pstLocal.setString(4, detail.get(i).getRef_no()); pstLocal.executeUpdate(); } } } if (!detail.isEmpty()) { for (int i = 0; i < detail.size(); i++) { sql = "insert into opb_sr_val (SR_CD,SR_NO,TAG_NO,IMEI_NO,SERIAL_NO,P_RATE,BRANCH_CD,REF_NO) values (?,?,?,?,?,?,?,?)"; pstLocal = dataConnection.prepareStatement(sql); pstLocal.setString(1, detail.get(i).getSr_cd()); pstLocal.setInt(2, detail.get(i).getSr_no()); pstLocal.setString(3, detail.get(i).getTag_no()); pstLocal.setString(4, detail.get(i).getImei()); pstLocal.setString(5, detail.get(i).getSerial()); pstLocal.setDouble(6, detail.get(i).getP_rate()); pstLocal.setString(7, detail.get(i).getBranch_cd()); pstLocal.setString(8, detail.get(i).getRef_no()); pstLocal.executeUpdate(); } } if (detail.isEmpty()) { SeriesMasterAdd smu = new SeriesMasterAdd(dataConnection); smu.seriesUpdateSingle(sr_cd, opb_qty, opb_val, "1"); } else { SeriesMasterAddDetail smu = new SeriesMasterAddDetail(dataConnection); smu.seriesUpdate(sr_cd, detail); } jResultObj.addProperty("result", 1); jResultObj.addProperty("Cause", "success"); jResultObj.addProperty("sr_cd", sr_cd); } catch (SQLNonTransientConnectionException ex1) { jResultObj.addProperty("result", -1); jResultObj.addProperty("Cause", "Server is down"); } catch (SQLException ex) { jResultObj.addProperty("result", -1); jResultObj.addProperty("Cause", ex.getMessage()); } } response.getWriter().print(jResultObj); }
From source file:stockTransfer.AddUpdateStkTrDetail.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods./* www . j a v a2s .c om*/ * * @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 { final String detailJson = request.getParameter("detail"); TypeToken<List<StockTransferDetail>> token = new TypeToken<List<StockTransferDetail>>() { }; List<StockTransferDetail> detail = new Gson().fromJson(detailJson, token.getType()); response.getWriter().print(saveVoucher((ArrayList<StockTransferDetail>) detail)); }