Skip to content

Commit

Permalink
Issue #1139 - switch to String to prevent some useless conversions
Browse files Browse the repository at this point in the history
  • Loading branch information
nbartels committed Feb 28, 2021
1 parent 95e24c6 commit 99a61a3
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/restfb/DefaultJsonMapper.java
Expand Up @@ -209,7 +209,7 @@ public <T> T toJavaObject(String json, Class<T> type) {
JsonObject jsonObject = jsonValue.asObject();

if (instance instanceof AbstractFacebookType) {
ReflectionUtils.setJson(instance, jsonObject);
ReflectionUtils.setJson(instance, json);
}

// For each Facebook-annotated field on the current Java object, pull data
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/restfb/util/ReflectionUtils.java
Expand Up @@ -61,10 +61,10 @@ private ReflectionUtils() {
// prevent instantiation
}

public static void setJson(Object cls, JsonObject obj) {
if (cls == null || obj == null) return; // if
public static void setJson(Object cls, String obj) {
if (cls == null || obj == null) return; // if some object is null we skip this step
List<FieldWithAnnotation<OriginalJson>> annotatedFields = findFieldsWithAnnotation(cls.getClass(), OriginalJson.class);
annotatedFields.stream().map(FieldWithAnnotation::getField).filter(f -> JsonObject.class.equals(f.getType())).forEach(f -> setFieldData(f, cls, obj));
annotatedFields.stream().map(FieldWithAnnotation::getField).filter(f -> String.class.equals(f.getType())).forEach(f -> setFieldData(f, cls, obj));
}

private static void setFieldData(Field field, Object obj, Object data) {
Expand Down
7 changes: 3 additions & 4 deletions src/main/lombok/com/restfb/types/From.java
Expand Up @@ -32,7 +32,7 @@
public class From extends CategorizedFacebookType {

@OriginalJson
private JsonObject json;
private String json;

@Setter
private User user;
Expand Down Expand Up @@ -61,9 +61,8 @@ public Page getAsPage() {
@JsonMapper.JsonMappingCompleted
protected void convert(JsonMapper jsonMapper) {
if (json != null) {
String jsonString = json.toString();
user = jsonMapper.toJavaObject(jsonString, User.class);
page = jsonMapper.toJavaObject(jsonString, Page.class);
user = jsonMapper.toJavaObject(json, User.class);
page = jsonMapper.toJavaObject(json, Page.class);
}
}

Expand Down

0 comments on commit 99a61a3

Please sign in to comment.