summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java
diff options
context:
space:
mode:
authormcombellack <mcombellack@13f79535-47bb-0310-9956-ffa450edef68>2009-06-21 11:48:02 +0000
committermcombellack <mcombellack@13f79535-47bb-0310-9956-ffa450edef68>2009-06-21 11:48:02 +0000
commit2321a44e501d413b4b4c830060ff95ffaa18dcc6 (patch)
treedadd956bdb7b48ae618d97804a9cc1eb6184de0e /sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java
parent4a925ec55ed4737e0a65b9eaa77de280723b043d (diff)
Updated the application so that it uses the Tuscany Data API for creating the blog feeds so that we can add both an Atom and RSS feed onto the same Java component implementation.
For completeness, added implementations that extend the Collections interfaces for the Atom and RSS bindings to show it can be done that way too but the implementation code cannot support both bindings at the same time git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@786996 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java')
-rw-r--r--sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java b/sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java
new file mode 100644
index 0000000000..ca898fe2ad
--- /dev/null
+++ b/sandbox/travelsample/contributions/blog-feed-contribution/src/main/java/scatours/blog/feed/BaseBlogFeedImpl.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package scatours.blog.feed;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import scatours.blog.BlogPost;
+
+/**
+ * Base class for all blog feeds that provides the common methods
+ * that are shared by all the blog feed implementations.
+ */
+public abstract class BaseBlogFeedImpl {
+
+ /**
+ * Title of the blog.feed.
+ */
+ protected static final String FEED_TITLE = "Tuscany SCA Tours Blog Feed";
+
+ /**
+ * Description of the blog feed.
+ */
+ protected static final String FEED_DESCRIPTION = "Feed contianing the latest blog posts from Tuscany SCA Tours";
+
+ /**
+ * Author of the blog feed.
+ */
+ protected static final String FEED_AUTHOR = "SCA Tours CEO";
+
+ /**
+ * Used to generate unique IDs for the blog entries.
+ */
+ protected static final AtomicInteger ID_GEN = new AtomicInteger();
+
+ /**
+ * Generates the next blog entry ID.
+ *
+ * @return Next blog entry ID
+ */
+ protected String nextBlogID() {
+ return Integer.toString(ID_GEN.incrementAndGet());
+ }
+
+ /**
+ * Retrieves a list of all blog posts.
+ *
+ * @return A list of all blog posts.
+ */
+ public List<BlogPost> getAllBlogPosts() {
+ // Note: To keep things simple, we will just hard code a sample post.
+ // A proper implementation would load all blog posts from some resource
+ // such as files or a database.
+ List<BlogPost> blogEntries = new ArrayList<BlogPost>();
+
+ // Create a sample entry
+ final BlogPost samplePost = new BlogPost(
+ FEED_AUTHOR,
+ "Apache Tuscany in Action book features SCA Tours",
+ "We are famous as SCA Tours has been featured in the Apache Tuscany in Action book published by Manning",
+ new Date(),
+ "http://www.manning.com/laws/",
+ null);
+
+ // Add sample post to the list of posts
+ blogEntries.add(samplePost);
+
+ return blogEntries;
+ }
+}