You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/04/14 22:19:23 UTC

svn commit: r394186 - in /incubator/roller/branches/roller-newbackend/src/org/roller: business/hibernate/HibernateWeblogManagerImpl.java model/WeblogManager.java

Author: agilliland
Date: Fri Apr 14 13:19:18 2006
New Revision: 394186

URL: http://svn.apache.org/viewcvs?rev=394186&view=rev
Log:
add new method removeWeblogCategory() and tidy things up for category operations.


Modified:
    incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java
    incubator/roller/branches/roller-newbackend/src/org/roller/model/WeblogManager.java

Modified: incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java?rev=394186&r1=394185&r2=394186&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/business/hibernate/HibernateWeblogManagerImpl.java Fri Apr 14 13:19:18 2006
@@ -80,7 +80,58 @@
     
     
     public void storeWeblogCategory(WeblogCategoryData cat) throws RollerException {
-        // TODO BACKEND: new method
+        
+        if(this.isDuplicateWeblogCategoryName(cat)) {
+            throw new RollerException("Duplicate category name");
+        }
+        
+        this.strategy.storeAndCommit(cat);
+    }
+    
+    
+    public void removeWeblogCategory(WeblogCategoryData cat) throws RollerException {
+        
+        if(cat.retrieveWeblogEntries(true).size() > 0) {
+            throw new RollerException("Cannot remove category with entries");
+        }
+        
+        try {
+            // begin transaction
+            this.strategy.getSession().beginTransaction();
+            
+            // remove cat
+            this.strategy.remove(cat);
+            
+            // update website default cats if needed
+            if(cat.getWebsite().getBloggerCategory().equals(cat)) {
+                WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
+                cat.getWebsite().setBloggerCategory(rootCat);
+                this.strategy.store(cat.getWebsite());
+            }
+            
+            if(cat.getWebsite().getDefaultCategory().equals(cat)) {
+                WeblogCategoryData rootCat = this.getRootWeblogCategory(cat.getWebsite());
+                cat.getWebsite().setDefaultCategory(rootCat);
+                this.strategy.store(cat.getWebsite());
+            }
+            
+            // commit changes
+            this.strategy.getSession().getTransaction().commit();
+        } catch (Throwable ex) {
+            
+            try {
+                this.strategy.getSession().getTransaction().rollback();
+            } catch(Throwable he) {
+                log.error("Error doing rollback", he);
+            }
+            
+            strategy.release();
+            
+            throw new RollerException(ex);
+        }
+        
+        
+        
     }
     
     

Modified: incubator/roller/branches/roller-newbackend/src/org/roller/model/WeblogManager.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller-newbackend/src/org/roller/model/WeblogManager.java?rev=394186&r1=394185&r2=394186&view=diff
==============================================================================
--- incubator/roller/branches/roller-newbackend/src/org/roller/model/WeblogManager.java (original)
+++ incubator/roller/branches/roller-newbackend/src/org/roller/model/WeblogManager.java Fri Apr 14 13:19:18 2006
@@ -45,9 +45,6 @@
      */
     public WeblogCategoryData retrieveWeblogCategory(String id)
         throws RollerException;
-
-    
-    public void storeWeblogEntry(WeblogEntryData entry) throws RollerException;
     
     
     /**
@@ -65,6 +62,9 @@
     public void storeWeblogCategory(WeblogCategoryData cat) throws RollerException;
     
     
+    public void removeWeblogCategory(WeblogCategoryData cat) throws RollerException;
+    
+    
     /** Get WebLogCategory objects for a website. */
     public List getWeblogCategories(WebsiteData website)
         throws RollerException;
@@ -187,6 +187,9 @@
      * Get weblog entry by ID
      */
     public WeblogEntryData retrieveWeblogEntry(String id) throws RollerException;
+    
+    
+    public void storeWeblogEntry(WeblogEntryData entry) throws RollerException;
     
     
     public void removeWeblogEntry(WeblogEntryData entry) throws RollerException;