[jboss-cvs] JBossBlog SVN: r60 - in trunk/blog-model/src/java/org/jboss/blog: model and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 12 20:04:41 EDT 2007
Author: adamw
Date: 2007-03-12 20:04:40 -0400 (Mon, 12 Mar 2007)
New Revision: 60
Added:
trunk/blog-model/src/java/org/jboss/blog/model/
trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogAuthor.java
trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogComment.java
trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogItem.java
trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogModel.java
trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogPost.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogAuthor.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogComment.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogCommentDoesNotExistException.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogItem.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogModel.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogPost.java
trunk/blog-model/src/java/org/jboss/blog/model/BlogPostDoesNotExistException.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/
trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogAuthorImpl.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogModelImpl.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogAuthor.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogComment.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java
trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
trunk/blog-model/src/java/org/jboss/blog/tools/
trunk/blog-model/src/java/org/jboss/blog/tools/BasicTools.java
Log:
Build enhancement
Added: trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogAuthor.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogAuthor.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogAuthor.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,24 @@
+package org.jboss.blog.model;
+
+import org.jboss.blog.tools.BlogTools;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractBlogAuthor implements BlogAuthor {
+ private String fullName;
+
+ public String getFullName() {
+ if (fullName == null) {
+ if (BlogTools.isEmpty(getGivenName())) {
+ fullName = getFamilyName();
+ } else if (BlogTools.isEmpty(getFamilyName())) {
+ fullName = getGivenName();
+ } else {
+ fullName = getGivenName() + " " + getFamilyName();
+ }
+ }
+
+ return fullName;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogComment.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogComment.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogComment.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,7 @@
+package org.jboss.blog.model;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractBlogComment extends AbstractBlogItem implements BlogComment {
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogItem.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogItem.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogItem.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,42 @@
+package org.jboss.blog.model;
+
+import java.text.DateFormat;
+import java.util.Locale;
+
+/**
+ * A base class for {@link BlogItem} implementations, handling date methods.
+ * Not thread safe.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class AbstractBlogItem implements BlogItem {
+ private boolean dateInitialized;
+ private boolean timeInitialized;
+
+ private String createdDate;
+ private String createdTime;
+
+ public String getCreatedDate() {
+ if (!dateInitialized) {
+ createdDate = DateFormat.getDateInstance(DateFormat.FULL,
+ Locale.getDefault()).format(getCreated());
+ dateInitialized = true;
+ }
+
+ return createdDate;
+ }
+
+ public String getCreatedTime() {
+ if (!timeInitialized) {
+ createdTime = DateFormat.getTimeInstance(DateFormat.SHORT,
+ Locale.getDefault()).format(getCreated());
+ timeInitialized = true;
+ }
+
+ return createdTime;
+ }
+
+ public int compareTo(Object o) {
+ BlogPost post = (BlogPost) o;
+ return post.getCreated().compareTo(getCreated());
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogModel.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogModel.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogModel.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,42 @@
+package org.jboss.blog.model;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * A base class for {@link BlogModel} implementations.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class AbstractBlogModel extends AbstractBlogItem implements BlogModel {
+ public BlogPost getPostByGuid(String guid)
+ throws BlogPostDoesNotExistException {
+ for (Iterator iter = getPosts().iterator(); iter.hasNext();) {
+ BlogPost post = (BlogPost) iter.next();
+ if (post.getGuid().equals(guid)) {
+ return post;
+ }
+ }
+
+ throw new BlogPostDoesNotExistException(guid);
+ }
+
+ public BlogPost getPostByTitleAsId(String titleAsId)
+ throws BlogPostDoesNotExistException {
+ for (Iterator iter = getPosts().iterator(); iter.hasNext();) {
+ BlogPost post = (BlogPost) iter.next();
+ if (post.getTitleAsId().equals(titleAsId)) {
+ return post;
+ }
+ }
+
+ throw new BlogPostDoesNotExistException(titleAsId);
+ }
+
+ public List getPosts(int from, int to) {
+ List posts = getPosts();
+ to = Math.min(posts.size(), to);
+ from = Math.min(to, from);
+
+ return posts.subList(from, to);
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogPost.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogPost.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/AbstractBlogPost.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,26 @@
+package org.jboss.blog.model;
+
+import org.jboss.blog.tools.BlogTools;
+
+/**
+ * A base class for {@link BlogPost} implementations, handling title-as-id
+ * and date methods. Not thread safe.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public abstract class AbstractBlogPost extends AbstractBlogItem implements BlogPost {
+ private boolean titleAsIdInitialized;
+ private String titleAsId;
+
+ public boolean getHasComments() {
+ return ((getComments() != null) && (getComments().size() > 0));
+ }
+
+ public String getTitleAsId() {
+ if (!titleAsIdInitialized) {
+ titleAsId = BlogTools.convertToId(getTitle());
+ titleAsIdInitialized = true;
+ }
+
+ return titleAsId;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogAuthor.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogAuthor.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogAuthor.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,12 @@
+package org.jboss.blog.model;
+
+/**
+ * An interface which represents an author of blog posts or comments.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface BlogAuthor {
+ public String getUserName();
+ public String getGivenName();
+ public String getFamilyName();
+ public String getFullName();
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogComment.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogComment.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogComment.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,8 @@
+package org.jboss.blog.model;
+
+/**
+ * An interface representing a single blog comment
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface BlogComment extends BlogItem {
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogCommentDoesNotExistException.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogCommentDoesNotExistException.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogCommentDoesNotExistException.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,21 @@
+package org.jboss.blog.model;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogCommentDoesNotExistException extends Exception {
+ public BlogCommentDoesNotExistException() {
+ }
+
+ public BlogCommentDoesNotExistException(String message) {
+ super(message);
+ }
+
+ public BlogCommentDoesNotExistException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public BlogCommentDoesNotExistException(Throwable cause) {
+ super(cause);
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogItem.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogItem.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogItem.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,17 @@
+package org.jboss.blog.model;
+
+import java.util.Date;
+
+/**
+ * A base class for blog items: models, posts and comments.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface BlogItem extends Comparable{
+ public BlogAuthor getAuthor();
+ public String getTitle();
+ public String getDescription();
+ public Date getCreated();
+ public String getCreatedDate();
+ public String getCreatedTime();
+ public String getLink();
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogModel.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogModel.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogModel.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,40 @@
+package org.jboss.blog.model;
+
+import java.util.Set;
+import java.util.List;
+
+/**
+ * An interface representing a blog model, that is, a collection of blog
+ * posts, together with basic blog information.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface BlogModel extends BlogItem {
+ /**
+ * Gets all posts that are in this model. Invoking this method is
+ * discouraged. If possible, use {@link BlogModel#getPosts(int, int)}.
+ * @return Sorted, immutable list of {@link BlogPost} - posts for this blog model.
+ */
+ public List getPosts();
+
+ /**
+ * Gets a specified sublist of {@link BlogModel#getPosts()}. This method
+ * should be used instead of interating over the full list beacuse of
+ * possible performance improvements.
+ * @param from Index of first post to be contained in the returned list.
+ * @param to First index after the last post to be contained in the
+ * returned list.
+ * @return Sorted sublist of {@link BlogPost}, containing posts on
+ * positions from <code>from</code> to <code>to</code>.
+ */
+ public List getPosts(int from, int to);
+
+ /**
+ *
+ * @return Immutable set of {@link java.lang.String} - name of categories to
+ * which this model belongs.
+ */
+ public Set getCategories();
+
+ public BlogPost getPostByGuid(String guid) throws BlogPostDoesNotExistException;
+ public BlogPost getPostByTitleAsId(String titleAsId) throws BlogPostDoesNotExistException;
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogModelDoesNotExistException.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,22 @@
+package org.jboss.blog.model;
+
+/**
+ * An exception thrown when a blog model is requested, which does not exist.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogModelDoesNotExistException extends Exception {
+ public BlogModelDoesNotExistException() {
+ }
+
+ public BlogModelDoesNotExistException(String message) {
+ super(message);
+ }
+
+ public BlogModelDoesNotExistException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public BlogModelDoesNotExistException(Throwable cause) {
+ super(cause);
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogPost.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogPost.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogPost.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,43 @@
+package org.jboss.blog.model;
+
+import java.util.Set;
+import java.util.List;
+
+/**
+ * An interface representing a single blog post.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface BlogPost extends BlogItem {
+ public String getTitleAsId();
+ public String getGuid();
+
+ /**
+ *
+ * @return An URL to a feed with comments to this item. If no
+ * comments are available, this should be null.
+ */
+ public String getCommentLink();
+
+ /**
+ *
+ * @return True iff this post has any comments.
+ */
+ public boolean getHasComments();
+
+ /**
+ *
+ * @return A list of all comments for this item. Objects in the list
+ * implements the {@link BlogComment} interface. If the blog doesn't
+ * have/support comments, null is returned (this is different from the
+ * situation where a blog supports comments, but there are no comments
+ * to this post - in this case, an empty list is returned).
+ */
+ public List getComments();
+
+ /**
+ *
+ * @return Immutable set of {@link java.lang.String} - name of categories to
+ * which this post belongs.
+ */
+ public Set getCategories();
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/BlogPostDoesNotExistException.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/BlogPostDoesNotExistException.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/BlogPostDoesNotExistException.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,22 @@
+package org.jboss.blog.model;
+
+/**
+ * An exception thrown when a blog entry is demanded which does not exist.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogPostDoesNotExistException extends Exception {
+ public BlogPostDoesNotExistException() {
+ }
+
+ public BlogPostDoesNotExistException(String message) {
+ super(message);
+ }
+
+ public BlogPostDoesNotExistException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public BlogPostDoesNotExistException(Throwable cause) {
+ super(cause);
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogAuthorImpl.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogAuthorImpl.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogAuthorImpl.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,31 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogAuthor;
+
+/**
+ * A java beans implementation of the blog author interface.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogAuthorImpl extends AbstractBlogAuthor {
+ private String userName;
+ private String givenName;
+ private String familyName;
+
+ public BlogAuthorImpl(String userName, String givenName, String familyName) {
+ this.userName = userName;
+ this.givenName = givenName;
+ this.familyName = familyName;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public String getGivenName() {
+ return givenName;
+ }
+
+ public String getFamilyName() {
+ return familyName;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogCommentImpl.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,48 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogComment;
+import org.jboss.blog.model.BlogAuthor;
+
+import java.util.Date;
+
+/**
+ * A simple java-bean implementation of the comment interface.
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogCommentImpl extends AbstractBlogComment {
+ private BlogAuthor author;
+ private String title;
+ private String description;
+ private Date created;
+ private String link;
+
+ public BlogCommentImpl(BlogAuthor author, String title,
+ String description, Date created,
+ String link) {
+ this.author = author;
+ this.title = title;
+ this.description = description;
+ this.created = created;
+ this.link = link;
+ }
+
+ public BlogAuthor getAuthor() {
+ return author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public String getLink() {
+ return link;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogModelImpl.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogModelImpl.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogModelImpl.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,62 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogModel;
+import org.jboss.blog.model.BlogAuthor;
+
+import java.util.Date;
+import java.util.Set;
+import java.util.List;
+
+/**
+ * A simple java-bean implementation of the model interface.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogModelImpl extends AbstractBlogModel {
+ private BlogAuthor author;
+ private String title;
+ private String description;
+ private String link;
+ private Date created;
+ private List posts;
+ private Set categories;
+
+ public BlogModelImpl(BlogAuthor author, String title, String description,
+ String link, Date created, List posts,
+ Set categories) {
+ this.author = author;
+ this.title = title;
+ this.description = description;
+ this.link = link;
+ this.created = created;
+ this.posts = posts;
+ this.categories = categories;
+ }
+
+ public BlogAuthor getAuthor() {
+ return author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public List getPosts() {
+ return posts;
+ }
+
+ public Set getCategories() {
+ return categories;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogPostImpl.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogPostImpl.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/BlogPostImpl.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,74 @@
+package org.jboss.blog.model.impl;
+
+import org.jboss.blog.model.AbstractBlogPost;
+import org.jboss.blog.model.BlogAuthor;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * A simple java-bean implementation of the post interface.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class BlogPostImpl extends AbstractBlogPost {
+ private BlogAuthor author;
+ private String title;
+ private String description;
+ private Date created;
+ private String link;
+ private String guid;
+ private Set categories;
+ private String commentLink;
+ private List comments;
+
+ public BlogPostImpl(BlogAuthor author, String title, String description,
+ Date created, String link, String guid,
+ Set categories, String commentLink, List comments) {
+ this.author = author;
+ this.title = title;
+ this.description = description;
+ this.created = created;
+ this.link = link;
+ this.guid = guid;
+ this.categories = categories;
+ this.commentLink = commentLink;
+ this.comments = comments;
+ }
+
+ public BlogAuthor getAuthor() {
+ return author;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Date getCreated() {
+ return created;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public String getGuid() {
+ return guid;
+ }
+
+ public Set getCategories() {
+ return categories;
+ }
+
+ public String getCommentLink() {
+ return commentLink;
+ }
+
+ public List getComments() {
+ return comments;
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogAuthor.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogAuthor.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogAuthor.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,10 @@
+package org.jboss.blog.model.impl;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class EmptyBlogAuthor extends BlogAuthorImpl {
+ public EmptyBlogAuthor() {
+ super("", "", "");
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogComment.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogComment.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogComment.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,12 @@
+package org.jboss.blog.model.impl;
+
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class EmptyBlogComment extends BlogCommentImpl {
+ public EmptyBlogComment() {
+ super(new EmptyBlogAuthor(), "", "", new Date(), "");
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogModel.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,12 @@
+package org.jboss.blog.model.impl;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class EmptyBlogModel extends BlogModelImpl {
+ public EmptyBlogModel() {
+ super(new EmptyBlogAuthor(), "", "", "", new Date(), new ArrayList(), new HashSet());
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/model/impl/EmptyBlogPost.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,13 @@
+package org.jboss.blog.model.impl;
+
+import java.util.Date;
+import java.util.HashSet;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class EmptyBlogPost extends BlogPostImpl {
+ public EmptyBlogPost() {
+ super(new EmptyBlogAuthor(), "", "", new Date(), "", "", new HashSet(), null, null);
+ }
+}
Added: trunk/blog-model/src/java/org/jboss/blog/tools/BasicTools.java
===================================================================
--- trunk/blog-model/src/java/org/jboss/blog/tools/BasicTools.java (rev 0)
+++ trunk/blog-model/src/java/org/jboss/blog/tools/BasicTools.java 2007-03-13 00:04:40 UTC (rev 60)
@@ -0,0 +1,81 @@
+package org.jboss.blog.tools;
+
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BasicTools {
+ /**
+ * Checks if the given string is either null or empty.
+ * @param s String to check for emptiness.
+ * @return True iff the given string is either null or empty (represents an
+ * empty sequence of characters).
+ */
+ public static boolean isEmpty(String s) {
+ return (s == null) || s.equals("");
+ }
+
+ /**
+ * Makes sure that the given object is not null. If it is, throws a
+ * IllegalArgumentException. Should be used as a precondition checker
+ * for public methods.
+ * @param o Object to check.
+ * @param exceptionMessage Message to include in the exception if o is
+ * null.
+ * @throws IllegalArgumentException If o is null.
+ */
+ public static void assertNotNull(Object o, String exceptionMessage)
+ throws IllegalArgumentException {
+ if (o == null) {
+ throw new IllegalArgumentException(exceptionMessage);
+ }
+ }
+
+ /**
+ * Checks if two objects are equal in a null-safe way.
+ * @param obj1 First object to check.
+ * @param obj2 Second object to check.
+ * @return True iff both objects are null or if obj1.equals(obj2).
+ */
+ public static boolean objectsEqual(Object obj1, Object obj2) {
+ if (obj1 == null) {
+ return obj2 == null;
+ }
+
+ return obj1.equals(obj2);
+ }
+
+ /**
+ * Converts the given string to an id-friendly form. Specifially, replaces any
+ * characters that are not letters, digits, _ or - to _. Also, if the first
+ * character is a digit, prepends the string with a _.
+ * @param toConvert String to convert. Cannot be null.
+ * @return The original string with all occurences of characters that are not
+ * letters, digits, underscores or dashes replaced by an underscore; prepended
+ * with _ if the first letter is a digit.
+ */
+ public static String convertToId(String toConvert) {
+ String ret = toConvert.replaceAll("[^A-Za-z0-9_-]", "_");
+ if ((ret.length() > 0) && (ret.charAt(0) >= '0') && (ret.charAt(0) <= '9')) {
+ return "_" + ret;
+ } else {
+ return ret;
+ }
+ }
+
+ private static Set emptySet = new HashSet() {
+ public boolean add(Object o) {
+ return false;
+ }
+ };
+
+ /**
+ * Gets an immutable empty set.
+ * @return An immutable empty set.
+ */
+ public static Set emptySet() {
+ return emptySet;
+ }
+}
More information about the jboss-cvs-commits
mailing list