[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