You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by re...@apache.org on 2014/11/03 17:37:54 UTC
[2/3] git commit: STREAMS-203 | Broke down deserialization method
into more reasonably sized chunks
STREAMS-203 | Broke down deserialization method into more reasonably sized chunks
Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/48b8b71b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/48b8b71b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/48b8b71b
Branch: refs/heads/master
Commit: 48b8b71b69e08eb08688056e1a7fa221d875b018
Parents: c921f67
Author: Robert Douglas <rd...@w2ogroup.com>
Authored: Mon Nov 3 09:50:37 2014 -0600
Committer: Robert Douglas <rd...@w2ogroup.com>
Committed: Mon Nov 3 09:50:37 2014 -0600
----------------------------------------------------------------------
.../util/GPlusActivityDeserializer.java | 147 ++++++++++++-------
1 file changed, 90 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/48b8b71b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
index 9cb1d61..988e138 100644
--- a/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
+++ b/streams-contrib/streams-provider-google/google-gplus/src/main/java/com/google/gplus/serializer/util/GPlusActivityDeserializer.java
@@ -50,7 +50,7 @@ public class GPlusActivityDeserializer extends JsonDeserializer<Activity> {
* @throws JsonProcessingException
*/
@Override
- public Activity deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+ public Activity deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
JsonNode node = jsonParser.getCodec().readTree(jsonParser);
Activity activity = new Activity();
@@ -64,66 +64,99 @@ public class GPlusActivityDeserializer extends JsonDeserializer<Activity> {
activity.setId(node.get("id").asText());
activity.setVerb(node.get("verb").asText());
- Activity.Actor actor = new Activity.Actor();
- JsonNode actorNode = node.get("actor");
-
- actor.setId(actorNode.get("id").asText());
- actor.setDisplayName(actorNode.get("displayName").asText());
- actor.setUrl(actorNode.get("url").asText());
-
- Activity.Actor.Image image = new Activity.Actor.Image();
- JsonNode imageNode = actorNode.get("image");
- image.setUrl(imageNode.get("url").asText());
-
- actor.setImage(image);
- activity.setActor(actor);
-
- Activity.PlusObject object = new Activity.PlusObject();
- JsonNode objectNode = node.get("object");
- object.setObjectType(objectNode.get("objectType").asText());
- object.setContent(objectNode.get("content").asText());
- object.setUrl(objectNode.get("url").asText());
-
- Activity.PlusObject.Replies replies = new Activity.PlusObject.Replies();
- JsonNode repliesNode = objectNode.get("replies");
- replies.setTotalItems(repliesNode.get("totalItems").asLong());
- replies.setSelfLink(repliesNode.get("selfLink").asText());
- object.setReplies(replies);
-
- Activity.PlusObject.Plusoners plusoners = new Activity.PlusObject.Plusoners();
- JsonNode plusonersNode = objectNode.get("plusoners");
- plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
- plusoners.setSelfLink(plusonersNode.get("selfLink").asText());
- object.setPlusoners(plusoners);
-
- Activity.PlusObject.Resharers resharers = new Activity.PlusObject.Resharers();
- JsonNode resharersNode = objectNode.get("resharers");
- resharers.setTotalItems(resharersNode.get("totalItems").asLong());
- resharers.setSelfLink(resharersNode.get("selfLink").asText());
- object.setResharers(resharers);
-
- List<Activity.PlusObject.Attachments> attachments = Lists.newArrayList();
- for (JsonNode attachmentNode : objectNode.get("attachments")) {
- Activity.PlusObject.Attachments attachments1 = new Activity.PlusObject.Attachments();
- attachments1.setObjectType(attachmentNode.get("objectType").asText());
- attachments1.setDisplayName(attachmentNode.get("displayName").asText());
- attachments1.setContent(attachmentNode.get("content").asText());
- attachments1.setUrl(attachmentNode.get("url").asText());
-
- Activity.PlusObject.Attachments.Image image1 = new Activity.PlusObject.Attachments.Image();
- JsonNode imageNode1 = attachmentNode.get("image");
- image1.setUrl(imageNode1.get("url").asText());
- attachments1.setImage(image1);
-
- attachments.add(attachments1);
- }
- object.setAttachments(attachments);
-
- activity.setObject(object);
+ activity.setActor(buildActor(node));
+
+ activity.setObject(buildPlusObject(node));
} catch (Exception e) {
LOGGER.error("Exception while trying to deserialize activity object: {}", e);
}
return activity;
}
+
+ /**
+ * Given a raw JsonNode, build out the G+ {@link com.google.api.services.plus.model.Activity.Actor} object
+ *
+ * @param node
+ * @return {@link com.google.api.services.plus.model.Activity.Actor} object
+ */
+ private Activity.Actor buildActor(JsonNode node) {
+ Activity.Actor actor = new Activity.Actor();
+ JsonNode actorNode = node.get("actor");
+
+ actor.setId(actorNode.get("id").asText());
+ actor.setDisplayName(actorNode.get("displayName").asText());
+ actor.setUrl(actorNode.get("url").asText());
+
+ Activity.Actor.Image image = new Activity.Actor.Image();
+ JsonNode imageNode = actorNode.get("image");
+ image.setUrl(imageNode.get("url").asText());
+
+ actor.setImage(image);
+
+ return actor;
+ }
+
+ /**
+ * Given a JsonNode, build out all aspects of the {@link com.google.api.services.plus.model.Activity.PlusObject} object
+ *
+ * @param node
+ * @return {@link com.google.api.services.plus.model.Activity.PlusObject} object
+ */
+ private Activity.PlusObject buildPlusObject(JsonNode node) {
+ Activity.PlusObject object = new Activity.PlusObject();
+ JsonNode objectNode = node.get("object");
+ object.setObjectType(objectNode.get("objectType").asText());
+ object.setContent(objectNode.get("content").asText());
+ object.setUrl(objectNode.get("url").asText());
+
+ Activity.PlusObject.Replies replies = new Activity.PlusObject.Replies();
+ JsonNode repliesNode = objectNode.get("replies");
+ replies.setTotalItems(repliesNode.get("totalItems").asLong());
+ replies.setSelfLink(repliesNode.get("selfLink").asText());
+ object.setReplies(replies);
+
+ Activity.PlusObject.Plusoners plusoners = new Activity.PlusObject.Plusoners();
+ JsonNode plusonersNode = objectNode.get("plusoners");
+ plusoners.setTotalItems(plusonersNode.get("totalItems").asLong());
+ plusoners.setSelfLink(plusonersNode.get("selfLink").asText());
+ object.setPlusoners(plusoners);
+
+ Activity.PlusObject.Resharers resharers = new Activity.PlusObject.Resharers();
+ JsonNode resharersNode = objectNode.get("resharers");
+ resharers.setTotalItems(resharersNode.get("totalItems").asLong());
+ resharers.setSelfLink(resharersNode.get("selfLink").asText());
+ object.setResharers(resharers);
+
+ object.setAttachments(buildAttachments(objectNode));//attachments);
+
+ return object;
+ }
+
+ /**
+ * Given a raw JsonNode representation of an Activity's attachments, build out that
+ * list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
+ *
+ * @param objectNode
+ * @return list of {@link com.google.api.services.plus.model.Activity.PlusObject.Attachments} objects
+ */
+ private List<Activity.PlusObject.Attachments> buildAttachments(JsonNode objectNode) {
+ List<Activity.PlusObject.Attachments> attachments = Lists.newArrayList();
+ for (JsonNode attachmentNode : objectNode.get("attachments")) {
+ Activity.PlusObject.Attachments attachments1 = new Activity.PlusObject.Attachments();
+ attachments1.setObjectType(attachmentNode.get("objectType").asText());
+ attachments1.setDisplayName(attachmentNode.get("displayName").asText());
+ attachments1.setContent(attachmentNode.get("content").asText());
+ attachments1.setUrl(attachmentNode.get("url").asText());
+
+ Activity.PlusObject.Attachments.Image image1 = new Activity.PlusObject.Attachments.Image();
+ JsonNode imageNode1 = attachmentNode.get("image");
+ image1.setUrl(imageNode1.get("url").asText());
+ attachments1.setImage(image1);
+
+ attachments.add(attachments1);
+ }
+
+ return attachments;
+ }
}
\ No newline at end of file