[jboss-cvs] JBossBlog SVN: r85 - trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 19 12:21:33 EDT 2007


Author: frite
Date: 2007-03-19 12:21:33 -0400 (Mon, 19 Mar 2007)
New Revision: 85

Modified:
   trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
Log:


Modified: trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
===================================================================
--- trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2007-03-19 16:15:24 UTC (rev 84)
+++ trunk-esial/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2007-03-19 16:21:33 UTC (rev 85)
@@ -5,6 +5,7 @@
 import org.jboss.blog.service.store.model.ModifiableBlogPost;
 import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
 import org.jboss.blog.service.store.model.ModifiableBlogComment;
+import org.jboss.blog.service.store.model.ModifiableBlogCategory;
 import org.jboss.blog.service.AbstractBlogService;
 import org.jboss.blog.service.permissions.model.PortalUserBlogAuthor;
 import org.jboss.blog.service.permissions.BlogPermissionsService;
@@ -12,6 +13,7 @@
 import org.jboss.blog.model.BlogModelDoesNotExistException;
 import org.jboss.blog.model.BlogCommentDoesNotExistException;
 import org.jboss.blog.model.BlogAuthor;
+import org.jboss.blog.model.BlogCategory;
 import org.jboss.blog.tools.BlogTools;
 import org.hibernate.SessionFactory;
 import org.hibernate.cfg.Configuration;
@@ -68,7 +70,16 @@
 
         return (HBlogModel) model;
     }
+    
+    HBlogCategory castAndAssertBlogCategory(BlogCategory category) {
+        BlogTools.assertNotNull(category, "Blog category cannot be null.");
+        if (!(category instanceof HBlogCategory)) {
+            throw new IllegalArgumentException("Category must be obtained from this store service.");
+        }
 
+        return (HBlogCategory) category;
+    }
+
     HBlogPost castAndAssertBlogPost(ModifiableBlogPost post) {
         BlogTools.assertNotNull(post, "Blog post cannot be null.");
         if (!(post instanceof HBlogPost)) {
@@ -107,13 +118,27 @@
      * @jmx.managed-operation
      * @jmx.managed-parameter type="org.jboss.blog.BlogName"
      */
-    public List retrieveAllCategories(BlogName blogName) {
+    public List retrieveAllGroups(BlogName blogName) {
         assertBlogNameNotNull(blogName);
         return sf.getCurrentSession().createQuery(
                 "select model.blogName from HBlogModel as model " +
                         "where model.blogName.id = :id")
                 .setParameter("id", blogName.getId()).list();
     }
+    
+    
+    
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.BlogName"
+     */
+    public List retrieveAllCategories(BlogName blogName) {
+        assertBlogNameNotNull(blogName);
+        return sf.getCurrentSession().createQuery(
+                "select model.categories from HBlogModel as model " +
+                        "where model.blogName.id = :id")
+                .setParameter("id", blogName.getId()).list();
+    }
 
     private boolean blogExists(BlogName blogName) {
         Long count = (Long) sf.getCurrentSession().createQuery(
@@ -154,7 +179,26 @@
 
         return hbm;
     }
+    
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="String"
+     */
+    public ModifiableBlogCategory retrieveBlogCategory(String name){
+    	
+        HBlogCategory hbc = (HBlogCategory) sf.getCurrentSession()
+                .createQuery("from HBlogCategory as cat where cat.name = :name")
+                .setCacheable(true).setParameter("name", name).uniqueResult();
 
+        //if (hbc == null) {
+        //    throw new BlogModelDoesNotExistException(blogName.toString());
+        //}
+        if (hbc != null){
+        	hbc.setStoreService(this);
+    	}
+        return hbc;
+    }
+
     /**
      * @jmx.managed-operation
      * @jmx.managed-parameter type="org.jboss.blog.BlogName"
@@ -181,6 +225,16 @@
     /**
      * @jmx.managed-operation
      */
+    public ModifiableBlogCategory newBlogCategory() {
+        HBlogCategory category = new HBlogCategory();
+        category.setStoreService(this);
+
+        return category;
+    }
+    
+    /**
+     * @jmx.managed-operation
+     */
     public ModifiableBlogPost newBlogPost() {
         HBlogPost post = new HBlogPost();
         post.setModelPosts(new ArrayList());
@@ -244,6 +298,22 @@
 
     /**
      * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogCategory"
+     */
+    public void saveNewBlogCategory(ModifiableBlogCategory category) /*throws BlogCategoryAlreadyExistsException*/ {
+        HBlogCategory hcategory = castAndAssertBlogCategory(category);
+        //assertBlogNameNotNull(hmodel.getBlogName());
+
+        // TODO: checking if the blog already exist or not. Can it be done in a better way?
+        //if (blogExists(hmodel.getBlogName())) {
+        //    throw new BlogModelAlreadyExistsException(hmodel.getBlogName().toString());
+        //}
+
+        sf.getCurrentSession().save(category);
+    }
+    
+    /**
+     * @jmx.managed-operation
      * @jmx.managed-parameter type="org.jboss.blog.service.store.model.ModifiableBlogModel"
      */
     public void deleteBlogModel(ModifiableBlogModel model) {
@@ -307,7 +377,7 @@
      * To the given blog model, adds the given post.
      * @param model Model to which the post should be added.
      * @param post Post to add.
-     */
+     */ 
     void addPost(HBlogModel model, HBlogPost post) {
         HBlogModel hmodel = castAndAssertBlogModel(model);
         HBlogPost hpost = castAndAssertBlogPost(post);
@@ -324,7 +394,21 @@
             sf.getCurrentSession().save(hbmp);
         }
     }
+    
+    /**
+     * To the given blog model, adds the given category.
+     * @param model Model to which the post should be added.
+     * @param category Category to add.
+     */ 
+    void addCategory(HBlogModel model, HBlogCategory category) {
+        HBlogModel hmodel = castAndAssertBlogModel(model);
+        HBlogCategory hcat = castAndAssertBlogCategory(category);
 
+       hmodel.getCategories().add(hcat);
+        sf.getCurrentSession().saveOrUpdate(hcat);
+        
+    }
+
     /**
      * From the given blog model, removes the given post.
      * @param model Model from which the post shold be removed.




More information about the jboss-cvs-commits mailing list