You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by mf...@apache.org on 2014/08/12 23:44:37 UTC

[3/4] git commit: STREAMS-139 | Modified buildProvider to make logic more understandable

STREAMS-139 | Modified buildProvider to make logic more understandable


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/6eb9707a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/6eb9707a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/6eb9707a

Branch: refs/heads/master
Commit: 6eb9707ae9de40e399f3a89801fa952867a5c9a8
Parents: 9e72ae7
Author: Robert Douglas <rd...@w2odigital.com>
Authored: Wed Aug 6 11:14:55 2014 -0500
Committer: Robert Douglas <rd...@w2odigital.com>
Committed: Wed Aug 6 11:14:55 2014 -0500

----------------------------------------------------------------------
 .../serializer/SyndEntryActivitySerializer.java | 31 ++++++++++++++++----
 1 file changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/6eb9707a/streams-contrib/streams-provider-rss/src/main/java/org/apache/streams/rss/serializer/SyndEntryActivitySerializer.java
----------------------------------------------------------------------
diff --git a/streams-contrib/streams-provider-rss/src/main/java/org/apache/streams/rss/serializer/SyndEntryActivitySerializer.java b/streams-contrib/streams-provider-rss/src/main/java/org/apache/streams/rss/serializer/SyndEntryActivitySerializer.java
index 9edcd12..06839f3 100644
--- a/streams-contrib/streams-provider-rss/src/main/java/org/apache/streams/rss/serializer/SyndEntryActivitySerializer.java
+++ b/streams-contrib/streams-provider-rss/src/main/java/org/apache/streams/rss/serializer/SyndEntryActivitySerializer.java
@@ -178,12 +178,20 @@ public class SyndEntryActivitySerializer implements ActivitySerializer<ObjectNod
         if (entry.get("uri") != null)
             uri = entry.get("uri").textValue();
 
-        if (uri != null) {
-            if((uri.startsWith("http") || uri.startsWith("www")) || (link == null || !(link.startsWith("http") || link.startsWith("www")))) {
-                resourceLocation = uri;
-            } else {
-                resourceLocation = link;
-            }
+        /**
+         * Order of precedence for resourceLocation selection
+         *
+         * 1. Valid URI
+         * 2. Valid Link
+         * 3. Non-null URI
+         * 4. Non-null Link
+         */
+        if(isValidResource(uri))
+            resourceLocation = uri;
+        else if(isValidResource(link))
+            resourceLocation = link;
+        else if(uri != null || link != null) {
+            resourceLocation = (uri != null) ? uri : link;
         }
 
         provider.setId("id:providers:rss");
@@ -194,6 +202,17 @@ public class SyndEntryActivitySerializer implements ActivitySerializer<ObjectNod
     }
 
     /**
+     * Tests whether or not the passed in resource is a valid URI
+     * @param resource
+     * @return boolean of whether or not the resource is valid
+     */
+    private boolean isValidResource(String resource) {
+        if(resource != null && resource.startsWith("http") || resource.startsWith("www"))
+            return true;
+        return false;
+    }
+
+    /**
      * Given an RSS object and an existing activity,
      * add the Rome extension to that activity and return it
      *