/** * @see com.restfb.LegacyFacebookClient#executeForList(String, * String, Class, com.restfb.Parameter[]) */ @Override public <T> List<T> executeForList(String method, String sessionKey, Class<T> resultType, Parameter... parameters) { return jsonMapper.toJavaList(makeRequest(method, sessionKey, parameters), resultType); }
private List<MessageTag> createTags(String rawTags, JsonMapper jsonMapper) { try { return jsonMapper.toJavaList(rawTags, MessageTag.class); } catch (FacebookJsonMappingException je) { } // message tags not in Graph API 2.5 format, ignore this exception and try another way try { List<MessageTag> resultList = new ArrayList<>(); JsonObject rawMessageTagsObject = jsonMapper.toJavaObject(rawTags, JsonObject.class); for (String key : rawMessageTagsObject.names()) { String tagArrayString = rawMessageTagsObject.get(key).toString(); resultList.addAll(jsonMapper.toJavaList(tagArrayString, MessageTag.class)); } return resultList; } catch (FacebookJsonMappingException je) { return new ArrayList<>(); } }
/** * @see com.restfb.FacebookClient#executeBatch(java.util.List, java.util.List) */ @Override public List<BatchResponse> executeBatch(List<BatchRequest> batchRequests, List<BinaryAttachment> binaryAttachments) { verifyParameterPresence("binaryAttachments", binaryAttachments); if (batchRequests == null || batchRequests.isEmpty()) { throw new IllegalArgumentException("You must specify at least one batch request."); } return jsonMapper.toJavaList( makeRequest("", true, false, binaryAttachments, Parameter.with("batch", jsonMapper.toJson(batchRequests, true))), BatchResponse.class); }
/** * Post-JSON-mapping operation that populates the {@code messageTags} field "by hand". * * @param jsonMapper * The {@code JsonMapper} that was used to map to this type. */ @JsonMappingCompleted protected void jsonMappingCompleted(JsonMapper jsonMapper) { if (rawNameTags == null) { return; } try { nameTags = jsonMapper.toJavaList(rawNameTags, EntityAtTextRange.class); return; } catch (FacebookJsonMappingException je) { } // message tags not in Graph API 2.5 format, ignore this exception and try another way try { JsonObject rawMessageTagsObject = jsonMapper.toJavaObject(rawNameTags, JsonObject.class); for (String key : rawMessageTagsObject.names()) { String tagArrayString = rawMessageTagsObject.get(key).toString(); nameTags.addAll(jsonMapper.toJavaList(tagArrayString, EntityAtTextRange.class)); } } catch (FacebookJsonMappingException je) { } // cannot parse message tags, but don't break the flow here }
/** * Post-JSON-mapping operation that populates the {@code messageTags} field "by hand". * * @param jsonMapper * The {@code JsonMapper} that was used to map to this type. */ @JsonMappingCompleted protected void jsonMappingCompleted(JsonMapper jsonMapper) { if (rawMessageTags == null) { return; } try { messageTags = jsonMapper.toJavaList(rawMessageTags, MessageTag.class); return; } catch (FacebookJsonMappingException je) { } // message tags not in Graph API 2.5 format, ignore this exception and try another way try { JsonObject rawMessageTagsObject = jsonMapper.toJavaObject(rawMessageTags, JsonObject.class); for (String key : rawMessageTagsObject.names()) { String tagArrayString = rawMessageTagsObject.get(key).toString(); messageTags.addAll(jsonMapper.toJavaList(tagArrayString, MessageTag.class)); } } catch (FacebookJsonMappingException je) { } // cannot parse message tags, but don't break the flow here }
for (String key : names) { if ("datetime".equals(key)) { List<NlpDatetime> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpDatetime.class); convertedEntities.addAll(list); } else if ("bye".equals(key)) { List<NlpBye> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpBye.class); convertedEntities.addAll(list); } else if ("reminder".equals(key)) { List<NlpReminder> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpReminder.class); convertedEntities.addAll(list); } else if ("greetings".equals(key)) { List<NlpGreetings> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpGreetings.class); convertedEntities.addAll(list); } else if ("amount_of_money".equals(key)) { List<NlpAmountOfMoney> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpAmountOfMoney.class); convertedEntities.addAll(list); } else if ("phone_number".equals(key)) { List<NlpPhoneNumber> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpPhoneNumber.class); convertedEntities.addAll(list); } else if ("email".equals(key)) { List<NlpEmail> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpEmail.class); convertedEntities.addAll(list); } else if ("distance".equals(key)) { List<NlpDistance> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpDistance.class); convertedEntities.addAll(list); } else if ("volume".equals(key)) { List<NlpVolume> list = mapper.toJavaList(rawEntities.get(key).toString(), NlpVolume.class); convertedEntities.addAll(list); } else if ("temperature".equals(key)) {
/** * @see com.restfb.FacebookClient#executeQuery(String, * Class, com.restfb.Parameter[]) */ @Override public <T> List<T> executeQuery(String query, Class<T> objectType, Parameter... parameters) { verifyParameterPresence("query", query); verifyParameterPresence("objectType", objectType); for (Parameter parameter : parameters) if (QUERY_PARAM_NAME.equals(parameter.name)) throw new IllegalArgumentException("You cannot specify the '" + QUERY_PARAM_NAME + "' URL parameter yourself - " + "RestFB will populate this for you with " + "the query you passed to this method."); return jsonMapper.toJavaList( makeRequest("fql.query", true, false, false, null, parametersWithAdditionalParameter(Parameter.with(QUERY_PARAM_NAME, query), parameters)), objectType); }
/** * @see com.restfb.FacebookClient#convertSessionKeysToAccessTokens(java.lang.String, java.lang.String, * java.lang.String[]) */ @Override public List<AccessToken> convertSessionKeysToAccessTokens(String appId, String secretKey, String... sessionKeys) { verifyParameterPresence("appId", appId); verifyParameterPresence("secretKey", secretKey); if (sessionKeys == null || sessionKeys.length == 0) { return emptyList(); } String json = makeRequest("/oauth/exchange_sessions", true, false, null, Parameter.with("client_id", appId), Parameter.with("client_secret", secretKey), Parameter.with("sessions", join(sessionKeys))); return jsonMapper.toJavaList(json, AccessToken.class); }
/** * @see com.restfb.FacebookClient#convertSessionKeysToAccessTokens(String, * String, String[]) */ @Override public List<AccessToken> convertSessionKeysToAccessTokens(String appId, String secretKey, String... sessionKeys) { verifyParameterPresence("appId", appId); verifyParameterPresence("secretKey", secretKey); if (sessionKeys == null || sessionKeys.length == 0) return emptyList(); String json = makeRequest("/oauth/exchange_sessions", false, true, false, null, Parameter.with("client_id", appId), Parameter.with("client_secret", secretKey), Parameter.with("sessions", join(sessionKeys))); return jsonMapper.toJavaList(json, AccessToken.class); }
@JsonMappingCompleted protected void convertLabels(JsonMapper jsonMapper) { JsonObject rawLabels = null; if (this.rawLabels != null) { JsonValue jsonValue = Json.parse(this.rawLabels); if (jsonValue.isObject()) { rawLabels = jsonValue.asObject(); } } if (rawLabels != null && rawLabels.isObject()) { String innerLabelsString = rawLabels.get("data").toString(); labels = jsonMapper.toJavaList(innerLabelsString, PageLabel.class); } }