[jboss-svn-commits] JBL Code SVN: r8704 - labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 5 06:32:47 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-05 06:32:44 -0500 (Fri, 05 Jan 2007)
New Revision: 8704

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
Log:
JBRULES-601 refactoring

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java	2007-01-05 11:28:20 UTC (rev 8703)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java	2007-01-05 11:32:44 UTC (rev 8704)
@@ -0,0 +1,77 @@
+package org.drools.brms.server;
+
+
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.modeldriven.brxml.RuleModel;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
+import org.drools.brms.server.util.BRLPersistence;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+/**
+ * This takes care of the different asset types, based on the dublin core "format"
+ * attribute.
+ * 
+ * This handles the loading/storing of these assets, as some of them require massaging 
+ * before they are stored in the repository.
+ * 
+ * It uses the content attribute of asset nodes (drools:content) based
+ * on the (drools:format) format key.
+ * 
+ * @see AssetFormats
+ * 
+ * @author Michael Neale
+ */
+public class AssetContentFormatHandler {
+
+    /**
+     * When loading asset content.
+     * @param asset The target.
+     * @param item The source.
+     * @throws SerializableException
+     */
+    public void retrieveAssetContent(RuleAsset asset,
+                                     AssetItem item) throws SerializableException {
+        if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE)) {
+            //ok here is where we do DSLs...
+            throw new SerializableException("Can't load DSL rules just yet.");
+
+        } else if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) {             
+            RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
+            asset.content = model;
+        } else {
+            //default to text, goode olde texte, just like mum used to make.
+            RuleContentText text = new RuleContentText();
+            text.content = item.getContent();
+            asset.content = text;
+
+        }
+        
+
+        
+    }
+    
+    /**
+     * For storing the asset content back into the repo node (any changes).
+     * @param asset
+     * @param repoAsset
+     * @throws SerializableException
+     */
+    public void storeAssetContent(RuleAsset asset, AssetItem repoAsset) throws SerializableException {
+        if (asset.content instanceof RuleContentText) {
+            repoAsset.updateContent( ((RuleContentText)asset.content).content );        
+        } else if (asset.content instanceof RuleModel) {
+            RuleModel model = (RuleModel) asset.content;
+            repoAsset.updateContent( BRLPersistence.getInstance().toXML( model ) );
+        } else {
+            throw new SerializableException("Not able to handle that type of content just yet...");
+        }
+    }
+    
+    
+    
+    
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-05 11:28:20 UTC (rev 8703)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-05 11:32:44 UTC (rev 8704)
@@ -30,7 +30,6 @@
 import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryException;
 
-import com.google.gwt.user.client.rpc.IsSerializable;
 import com.google.gwt.user.client.rpc.SerializableException;
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
 
@@ -209,27 +208,16 @@
         RulesRepository repo = getRulesRepository();
         AssetItem item = repo.loadAssetByUUID( uuid );
         RuleAsset asset = new RuleAsset();
+        asset.uuid = item.getUUID();
+
         
+        //load standard meta data
         asset.metaData = popuplateMetaData( item );
-
-        if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE)) {
-            //ok here is where we do DSLs...
-            throw new SerializableException("Can't load DSL rules just yet.");
-
-        } else if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) { 
-            System.out.println("Contents:" + item.getContent());
-            RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
-            asset.content = model;
-        } else {
-            //default to text, goode olde texte, just like mum used to make.
-            RuleContentText text = new RuleContentText();
-            text.content = item.getContent();
-            asset.content = text;
-
-        }
-        asset.metaData.packageName = item.getPackageName();
-        asset.uuid = uuid;
         
+        //load the content
+        AssetContentFormatHandler handler = new AssetContentFormatHandler();
+        handler.retrieveAssetContent(asset, item);
+        
         return asset;
     }
     
@@ -242,6 +230,7 @@
     MetaData popuplateMetaData(AssetItem item) {
         MetaData meta = new MetaData();
 
+        meta.packageName = item.getPackageName();
         
         List cats = item.getCategories();
         meta.categories = new String[cats.size()];
@@ -283,38 +272,28 @@
     public String checkinVersion(RuleAsset asset) throws SerializableException {        
         RulesRepository repo = getRulesRepository();
         
-        AssetItem rule = repo.loadAssetByUUID( asset.uuid );
+        AssetItem repoAsset = repo.loadAssetByUUID( asset.uuid );
         
         MetaData meta = asset.metaData;
         
-        getMetaDataMapper().copyFromMetaData( meta, rule );
+        getMetaDataMapper().copyFromMetaData( meta, repoAsset );
         
-        rule.updateDateEffective( dateToCalendar( meta.dateEffective ) );
-        rule.updateDateExpired( dateToCalendar( meta.dateExpired ) );        
+        repoAsset.updateDateEffective( dateToCalendar( meta.dateEffective ) );
+        repoAsset.updateDateExpired( dateToCalendar( meta.dateExpired ) );        
         
-        rule.updateCategoryList( meta.categories );
-        updateContentToAsset( rule, asset );
+        repoAsset.updateCategoryList( meta.categories );
+        AssetContentFormatHandler handler = new AssetContentFormatHandler();
+        handler.storeAssetContent( asset, repoAsset );
         
+        repoAsset.checkin( meta.checkinComment );
         
-        
-        rule.checkin( meta.checkinComment );
-        
-        return rule.getUUID();
+        return repoAsset.getUUID();
     }
     
 
-    private void updateContentToAsset(AssetItem repoAsset, RuleAsset asset) throws SerializableException {
-        if (asset.content instanceof RuleContentText) {
-            repoAsset.updateContent( ((RuleContentText)asset.content).content );        
-        } else if (asset.content instanceof RuleModel) {
-            RuleModel model = (RuleModel) asset.content;
-            repoAsset.updateContent( BRLPersistence.getInstance().toXML( model ) );
-        } else {
-            throw new SerializableException("Not able to handle that type of content just yet...");
-        }
-    }
 
 
+
     
     
 




More information about the jboss-svn-commits mailing list