List of usage examples for com.google.gson GsonBuilder registerTypeAdapter
@SuppressWarnings({ "unchecked", "rawtypes" }) public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter)
From source file:com.belaytech.device.DO.DeviceJsonObject.java
License:Open Source License
public static <T extends DeviceJsonObject> T fromJson(final String json, Class<T> type) { GsonBuilder gb = new GsonBuilder(); gb.registerTypeAdapter(Status.class, new Status.Deserializer()); gb.registerTypeAdapter(Result.class, new Result.Deserializer()); Gson gson = gb.create();//from ww w . j a v a2s. c om return gson.fromJson(json, type); }
From source file:com.berniesanders.fieldthebern.dagger.MainModule.java
License:Apache License
public MainModule(Context context) { this.context = context.getApplicationContext(); GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.disableHtmlEscaping();/* w w w . j a va2 s . c o m*/ gsonBuilder.registerTypeAdapter(ApiItem.class, new CollectionDeserializer()); gsonBuilder.registerTypeAdapter(Content.class, new PageContentDeserializer()); gsonBuilder.registerTypeAdapter(CanvassData.class, new CanvassDataSerializer()); gson = gsonBuilder.create(); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); rxPrefs = RxSharedPreferences.create(preferences); config = new ConfigImpl(context); }
From source file:com.bing.maps.rest.services.impl.BaseBingMapsApiQuery.java
License:Apache License
/** * Gets the gson builder.// w w w. j a v a 2 s.c om * * @return the gson builder */ protected GsonBuilder getGsonBuilder() { GsonBuilder builder = new GsonBuilder(); builder.setDateFormat(ApplicationConstants.RFC822DATEFORMAT); builder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); builder.registerTypeAdapter(LocationType.class, new JsonDeserializer<LocationType>() { @Override public LocationType deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { return LocationType.fromValue(arg0.getAsString()); } }); builder.registerTypeAdapter(AddressComponentType.class, new JsonDeserializer<AddressComponentType>() { @Override public AddressComponentType deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { return AddressComponentType.fromValue(arg0.getAsString()); } }); builder.registerTypeAdapter(TravelMode.class, new JsonDeserializer<TravelMode>() { @Override public TravelMode deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { return TravelMode.fromValue(arg0.getAsString()); } }); return builder; }
From source file:com.birbit.jsonapi.JsonApiDeserializer.java
License:Apache License
public static GsonBuilder register(GsonBuilder builder, JsonApiResourceDeserializer... deserializers) { return builder.registerTypeAdapter(JsonApiResponse.class, new JsonApiDeserializer(deserializers)) .registerTypeAdapter(JsonApiLinks.class, JsonApiLinksDeserializer.INSTANCE); }
From source file:com.blackypaw.mc.i18n.I18NSpigotAdapter.java
License:Open Source License
private void installInterceptors() { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(ChatComponent.class, new ChatComponentDeserializer()); Gson gson = gsonBuilder.create();/*from w w w . ja va 2 s. com*/ ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager(); String basePackage = "com.blackypaw.mc.i18n.interceptor."; MinecraftVersion version = protocolManager.getMinecraftVersion(); if (version.getMajor() == 1) { // Full Version: if (version.getMinor() == 11) { basePackage += "v1_11"; } else if (version.getMinor() == 10) { basePackage += "v1_10"; } else if (version.getMinor() == 9) { if (version.getBuild() > 2) { basePackage += "v1_10"; } else { basePackage += "v1_9_2"; } } else if (version.getMinor() == 8) { basePackage += "v1_9_2"; } else { basePackage = null; } } else { basePackage = null; } if (basePackage == null) { this.getLogger().log(Level.SEVERE, "Failed to instantiate interceptors: this build supports Minecraft versions 1.11 - 1.11; please consider upgrading to the latest version"); return; } try { protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorChat", this, gson, this.i18n)); protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorScoreboard", this, gson, this.i18n)); protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorSettings", this, gson, this.i18n)); protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorSign", this, gson, this.i18n)); protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorSlot", this, gson, this.i18n)); protocolManager.addPacketListener(this.instantiatePacketListener(protocolManager, basePackage, "InterceptorTitle", this, gson, this.i18n)); } catch (Exception e) { this.getLogger().log(Level.SEVERE, "Failed to instantiate interceptors", e); } }
From source file:com.bosch.osmi.sw360.cvesearch.datasource.json.CveSearchJsonParser.java
License:Open Source License
public CveSearchJsonParser(Type type) { this.type = type; GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(CveSearchData.DateTimeObject.class, new DateTimeObjectDeserializer()); gsonBuilder.registerTypeAdapter(CveSearchData.VulnerableConfigurationEntry.class, new VulnerableConfigurationEntryDeserializer()); gson = gsonBuilder.create();/* ww w. j a v a 2 s . co m*/ }
From source file:com.bynder.sdk.util.Utils.java
License:Open Source License
/** * Creates an implementation of the API endpoints defined by the service interface. * * @param <T> Class type of the API interface. * @param apiInterface API interface class. * @param baseUrl Domain URL where we want to point the API calls. * @param credentials Token credentials to call the API. * @param httpConnectionSettings Settings for the http connection to Bynder * @return Instance of the API interface class implementation. *//*from w w w . j ava 2 s.co m*/ public static <T> T createApiService(final Class<T> apiInterface, final URL baseUrl, final Credentials credentials, final HttpConnectionSettings httpConnectionSettings) { OkHttpOAuthConsumer oauthConsumer = createHttpOAuthConsumer(credentials.getConsumerKey(), credentials.getConsumerSecret(), credentials.getToken(), credentials.getTokenSecret()); OkHttpClient httpClient = createHttpClient(oauthConsumer, httpConnectionSettings); Builder builder = new Builder(); builder.baseUrl(baseUrl.toString()); builder.addConverterFactory(new StringConverterFactory()); builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create()); GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(Boolean.class, new BooleanTypeAdapter()); builder.addConverterFactory(GsonConverterFactory.create(gsonBuilder.create())); builder.client(httpClient); Retrofit retrofit = builder.build(); return retrofit.create(apiInterface); }
From source file:com.bzcentre.dapiPush.DapiReceiver.java
License:Open Source License
@Override public Object[] invoke(Map<String, Object> request) { NginxClojureRT.log.info(TAG + " is invoked..."); String chk_token;/* w w w . j av a 2s. co m*/ String user_id; String invitations; String return_code = ""; String dummy_header = "http://www.dummy.com/dummy?"; // full url for URLEncodedUtils String payload; String provider; MsgCounter msgCounter = new MsgCounter(); @SuppressWarnings("unused") Integer isModerator; String query; String dapiToken = newBzToken(service_seed); int push_status = NGX_HTTP_FORBIDDEN; GsonBuilder gBuilder = new GsonBuilder(); gBuilder.registerTypeAdapter(new TypeToken<Receipient>() { }.getType(), new ReceipientTypeAdapter()); Gson g = gBuilder.disableHtmlEscaping().serializeNulls().create(); List<String[]> undeliverables = new ArrayList<>(); Set<String> deliverables = new HashSet<>(); String msg = ""; errMsg = null; String requestMethod; // Supported request map constants can be find in the MiniConstants file requestMethod = request.get(REQUEST_METHOD).toString(); if (requestMethod.equals(GET) && request.containsKey(QUERY_STRING)) { try { msg = dummy_header + request.get(QUERY_STRING).toString(); } catch (NullPointerException e) { errMsg = "NullPointerException" + e.getMessage(); } } else if (requestMethod.equals(POST)) { if (request.containsKey(BODY)) { InputStream body = (InputStream) request.get(BODY); BufferedReader bReader = new BufferedReader(new InputStreamReader(body)); StringBuilder sbfFileContents = new StringBuilder(); //read file line by line try { while ((msg = bReader.readLine()) != null) { sbfFileContents.append(msg); } msg = dummy_header + sbfFileContents.toString(); } catch (IOException e) { errMsg = "IOException" + e.getMessage(); } catch (NullPointerException e) { errMsg = "Null Content, Error :" + e.getMessage(); } } else { errMsg = "NO BODY"; } } if (errMsg != null) { NginxClojureRT.log.info(TAG + "http parse error:" + errMsg); return new Object[] { NGX_HTTP_BAD_REQUEST, ArrayMap.create(CONTENT_TYPE, "text/plain"), //headers map "{\"method\":\"" + requestMethod + " \", \"message\":\"" + errMsg + "\"}" //response body can be string, File or Array/Collection of string or File }; } // invitations is a base64+URLencoded string try { NginxClojureRT.log.debug(TAG + "msg get from body:\n" + msg); final Map<String, Object> queryMap = convertQueryStringToMap(msg); PushNotificationResponse<SimpleApnsPushNotification> apnsProxyResponse; chk_token = queryMap.get("dapiToken").toString(); user_id = queryMap.get("user_id").toString(); invitations = queryMap.get("invitations").toString(); invitations = StringUtils.newStringUtf8(Base64.decodeBase64(invitations)); NginxClojureRT.log.debug(TAG + "after base64 decode:\n" + invitations); if (chk_token.equals(dapiToken)) { // Hoicoi Token validation List<Receipient> invitees; NginxClojureRT.log.info(TAG + "Parsing invitees from json..." + invitations); invitees = g.fromJson(invitations, new TypeToken<ArrayList<Receipient>>() { }.getType()); NginxClojureRT.log.info(TAG + "user " + user_id + " is sending " + invitees.size() + " push token(s) to user(s) " + g.toJson(invitees.get(0).getPayload().getAcme7())); // receipient={"fcm_token","apns_token","payload"} // payload class is as APNS message payload defined, FCM needs to map to it. msgCounter.countdown = invitees.size(); NginxClojureRT.log.info(TAG + "msgCounter[countdown,apns,fcm]:" + msgCounter.list()); for (Receipient receipient : invitees) { return_code = ""; payload = g.toJson(receipient.getPayload()); // isModerator= receipient.getIsMdr(); // default state sent_request, ApnsProxy will validate the result and make state update if (receipient.getApns_Token() != null && !receipient.getApns_Token().isEmpty() && payload != null) { query = "INSERT INTO `notification_push_blacklist` (`provider`,`user_id`,`to_token`) VALUES ('apns'," + receipient.getPayload().getAcme8() + ",'" + receipient.getApns_Token() + "')"; try { stmt.executeUpdate(query); } catch (SQLException e) { if (e.getErrorCode() != 1062) { // code 1062=duplicate entry NginxClojureRT.log.info(TAG + "apns query exception near line 186: " + e.getMessage() + " when\n" + query); } } provider = "apns"; switch (inBlackList(receipient.getPayload().getAcme8(), receipient.getApns_Token())) { case "sent_request": case "false": apnsProxyResponse = apnsProxy.apnsPush(receipient.getApns_Token(), payload); if (apnsProxyResponse.isAccepted()) { NginxClojureRT.log.info(TAG + "Pushing notification to user " + receipient.getPayload().getAcme8() + " through APNS."); MessageProcessor.pushBlackList(receipient.getApns_Token(), "whiteList", null); deliverables.add(receipient.getPayload().getAcme8()); push_status = (push_status == NGX_HTTP_FORBIDDEN ? NGX_HTTP_NO_CONTENT : push_status); //status 204 return_code = "apns_pushOK"; msgCounter.countdown--; msgCounter.apns++; } else { String reason = apnsProxyResponse.getRejectionReason(); Date timestamp = apnsProxyResponse.getTokenInvalidationTimestamp(); push_status = NGX_HTTP_NOT_FOUND; if (reason.equals("BadDeviceToken") || reason.equals("Unregistered")) { MessageProcessor.pushBlackList(receipient.getApns_Token(), reason, timestamp); } else { MessageProcessor.pushBlackList(receipient.getApns_Token(), "whiteList", null); } String[] undeliverable = { provider, receipient.getApns_Token(), receipient.getPayload().getAcme8() }; undeliverables.add(undeliverable); msgCounter.countdown--; } break; case "inactive": push_status = NGX_HTTP_NOT_FOUND;// status 404, to indicate that the user removes the app. return_code = "Unregistered"; String[] undeliverable = { provider, receipient.getApns_Token(), receipient.getPayload().getAcme8() }; undeliverables.add(undeliverable); msgCounter.countdown--; NginxClojureRT.log.info(TAG + "Already in blacklist:" + receipient.getApns_Token()); break; default: msgCounter.countdown--; return_code = "apns_blacklist_null_exception"; NginxClojureRT.log.info(TAG + "APNS BlackList check return null!"); break; } } if (receipient.getFcm_Token() != null && receipient.getFcm_Token().isEmpty() && payload != null) { // Timestamp timestamp = new Timestamp(System.currentTimeMillis()); query = "INSERT INTO `notification_push_blacklist` (`provider`,`user_id`,`to_token`) VALUES ('fcm'," + receipient.getPayload().getAcme8() + ",'" + receipient.getFcm_Token() + "')"; try { stmt.executeUpdate(query); } catch (SQLException e) { if (e.getClass().getName().equals("com.mysql.jdbc.CommunicationsException")) { rebuildDBConnection("stmt", query); } if (e.getErrorCode() != 1062) { // code 1062=duplicate entry NginxClojureRT.log.info(TAG + "odbc query exception near line 223 => Code:" + e.getErrorCode() + " : " + e.getMessage() + "\n" + query); } } provider = "fcm"; String responseType = inBlackList(receipient.getPayload().getAcme8(), receipient.getFcm_Token()); switch (responseType) { case "sent_request": case "false": msgCounter.countdown--; if (fcmProxy.fcmPush(receipient.getFcm_Token(), payload)) { deliverables.add(receipient.getPayload().getAcme8()); push_status = (push_status == NGX_HTTP_FORBIDDEN ? NGX_HTTP_NO_CONTENT : push_status); //status 204 return_code = "fcm_pushOK"; msgCounter.fcm++; break; } else { String response = inBlackList(receipient.getPayload().getAcme8(), receipient.getFcm_Token()); if (!response.equals("inactive")) { NginxClojureRT.log.info("TAG" + "Some thing wrong with the fcmPush. Expecting inactive but ... ->" + response); break; } else { msgCounter.countdown++; // if is inactive, continue inactive block, so add the counter back. } } case "inactive": push_status = NGX_HTTP_NOT_FOUND;// status 404, to indicate that the user removes the app. return_code = "Unregistered"; String[] undeliverable = { provider, receipient.getFcm_Token(), receipient.getPayload().getAcme8() }; undeliverables.add(undeliverable); msgCounter.countdown--; if (responseType.equals("inactive")) NginxClojureRT.log.info(TAG + "Already in blacklist:" + receipient.getFcm_Token()); break; default: msgCounter.countdown--; return_code = "fcm_blacklist_null_exception"; NginxClojureRT.log.info(TAG + "FCM BlackList nullException!"); break; } } NginxClojureRT.log.info(TAG + "msgCounter[countdown,apns,fcm]:" + msgCounter.list()); if (msgCounter.countdown == 0) { NginxClojureRT.log.info(TAG + "There are " + (msgCounter.apns + msgCounter.fcm) + " notification(s) ha(s)(ve) been successfully pushed to user(s) " + g.toJson(deliverables) + " for => " + invitees.get(0).getPayload().getAps().getAlert().getBody()); return wrapupPushResult(receipient.getPayload().getAcme8(), push_status, return_code, deliverables, msgCounter, undeliverables); } } } else { return_code = "InvalidToken"; errMsg = "HoiCoi Token is not valid<br>" + chk_token + "<br>" + dapiToken; } } catch (IllegalArgumentException | JsonParseException | IllegalStateException | NullPointerException | ClassCastException | URISyntaxException e) { return_code = e.getClass().getName(); errMsg = e.getMessage(); e.printStackTrace(); } return new Object[] { NGX_HTTP_FORBIDDEN, ArrayMap.create(CONTENT_TYPE, "text/plain"), //headers map "{\"code\":\"" + (return_code.isEmpty() ? "future_not_response" : return_code) + "\", \"message\":\"Should return from the Future response.\"}" //response body can be string, File or Array/Collection of string or File }; }
From source file:com.caris.oscarexchange4j.util.OXUtil.java
License:Apache License
/** * Returns a com.google.gson.Gson object for writing JSON * //w w w .j av a 2 s. c o m */ public static Gson createGsonBuilder(boolean prettyPrinting) { GsonBuilder g = new GsonBuilder(); g.registerTypeAdapter(Theme.class, new ThemeSerializer()); if (prettyPrinting) { g.setPrettyPrinting(); } return g.create(); }
From source file:com.ccc.crest.core.cache.crest.alliance.AllianceCollection.java
License:Open Source License
public static Future<EveData> getFuture(int page) throws Exception { GsonBuilder gson = new GsonBuilder(); gson.registerTypeAdapter(AllianceCollection.class, new AllianceCollection()); //@formatter:off CrestRequestData rdata = new CrestRequestData(null, getUrl(page), gson.create(), null, AllianceCollection.class, PagingCallback, ReadScope, getVersion(VersionType.Get), continueRefresh, false);//ww w . j a v a 2s . co m //@formatter:on return CrestController.getCrestController().crestClient.getCrest(rdata); }