[jboss-svn-commits] JBL Code SVN: r9832 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/server and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 27 21:52:09 EST 2007


Author: michael.neale at jboss.com
Date: 2007-02-27 21:52:09 -0500 (Tue, 27 Feb 2007)
New Revision: 9832

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/PlainTextContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/content_types.properties
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/package.html
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ContentHandlerTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
   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/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
refactoring - to use content handlers, much neater

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2007-02-28 02:20:55 UTC (rev 9831)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -10,6 +10,7 @@
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
 import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.Button;
 import com.google.gwt.user.client.ui.ChangeListener;
 import com.google.gwt.user.client.ui.ClickListener;
@@ -149,6 +150,10 @@
         ok.addClickListener( new ClickListener() {
 
             public void onClick(Widget w) {
+                if (sel.getSelectedPackage().equals( pkg )) {
+                    Window.alert( "You need to pick a different package to move this to." );
+                    return;
+                }
                 RepositoryServiceFactory.getService().changeAssetPackage( uuid, sel.getSelectedPackage(), 
                                                                           "Moved from : " + pkg, 
                                                                           new GenericCallback() {

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java	2007-02-28 02:20:55 UTC (rev 9831)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleDocumentWidget.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -3,7 +3,10 @@
 import org.drools.brms.client.rpc.MetaData;
 
 import com.google.gwt.user.client.ui.ChangeListener;
+import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.TextArea;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -18,10 +21,26 @@
 	private TextArea text;
 	
 	public RuleDocumentWidget(MetaData data) {
+//        
+//        HorizontalPanel horiz = new HorizontalPanel();
+//        
+        
 		text = new TextArea();
+        
+//        horiz.add( text );
+//        Image max = new Image("images/max_min.gif");
+//        max.setTitle( "Show/hide the documentation panel." );
+//        max.addClickListener( new ClickListener() {
+//            public void onClick(Widget w) {
+//                text.setVisible( !text.isVisible() );
+//            }            
+//        });
+//        horiz.add( max );
+//        horiz.setWidth( "100%" );
+        text.setWidth( "100%" );
         text.setVisibleLines( 10 );
         text.setStyleName( "rule-viewer-Documentation" );        
-        text.setTitle( "This is rule documentation. Human friendly descriptions of the business logic.");
+        text.setTitle( "This is rule documentation. Human friendly descriptions of the business logic.");        
 		initWidget(text);
         loadData(data);
 	}
@@ -34,6 +53,9 @@
                 data.dirty = true;
             }            
         });
+        if (data.description == null || "".equals(data.description )) {
+            text.setText( "<documentation>" );
+        }
     }
     
     

Modified: 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-02-28 02:20:55 UTC (rev 9831)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -13,6 +13,7 @@
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
 import org.drools.brms.client.rpc.RuleModelData;
+import org.drools.brms.server.contenthandler.ContentHandler;
 import org.drools.brms.server.util.BRLPersistence;
 import org.drools.repository.AssetItem;
 
@@ -32,119 +33,73 @@
  * 
  * @see AssetFormats
  * 
+ * NOTE: THIS IS NOT NEEDED... remove it when integration tests completeted.
+ * 
  * @author Michael Neale
  */
-public class AssetContentFormatHandler {
+public class AssetContentFormatHandler {//implements ContentHandler {
 
-    /**
-     * 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.BUSINESS_RULE )) {             
-            RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
-
-            RuleModelData data = new RuleModelData();
-            data.model = model;
-            //TODO: replace with the code that loads it from a cache server side.
-            //otherwise it will look at the current package, and then work out the model from that.
-            data.completionEngine = getDummySuggestionEngine();
-            
-            asset.content = data;
-        } else if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE )) {
-            RuleContentText text = new RuleContentText();
-            text.content = item.getContent();
-            
-            //TODO: make this read in the DSL files in the current package.
-            DSLRuleData data = getDummyDSLSuggestions();
-            data.text = text;
-            
-            asset.content = data;            
-        } else {
-            //default to text, goode olde texte, just like mum used to make.
-            RuleContentText text = new RuleContentText();
-            text.content = item.getContent();
-            asset.content = text;
-
-        }
-        
-
-        
-    }
+//    /* (non-Javadoc)
+//     * @see org.drools.brms.server.FormatHandler#retrieveAssetContent(org.drools.brms.client.rpc.RuleAsset, org.drools.repository.AssetItem)
+//     */
+//    public void retrieveAssetContent(RuleAsset asset,
+//                                     AssetItem item) throws SerializableException {
+//        if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) {             
+//            RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
+//
+//            RuleModelData data = new RuleModelData();
+//            data.model = model;
+//            //TODO: replace with the code that loads it from a cache server side.
+//            //otherwise it will look at the current package, and then work out the model from that.
+//            data.completionEngine = getDummySuggestionEngine();
+//            
+//            asset.content = data;
+//        } else if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE )) {
+//            RuleContentText text = new RuleContentText();
+//            text.content = item.getContent();
+//            
+//            //TODO: make this read in the DSL files in the current package.
+//            DSLRuleData data = getDummyDSLSuggestions();
+//            data.text = text;
+//            
+//            asset.content = data;            
+//        } else {
+//            //default to text, goode olde texte, just like mum used to make.
+//            RuleContentText text = new RuleContentText();
+//            text.content = item.getContent();
+//            asset.content = text;
+//
+//        }
+//        
+//
+//        
+//    }
+//    
+//
+//
+//
+//    
+//    /* (non-Javadoc)
+//     * @see org.drools.brms.server.FormatHandler#storeAssetContent(org.drools.brms.client.rpc.RuleAsset, org.drools.repository.AssetItem)
+//     */
+//    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 RuleModelData) {
+//            RuleModelData data = (RuleModelData) asset.content;
+//            repoAsset.updateContent( BRLPersistence.getInstance().toXML( data.model ) );
+//        } else if (asset.content instanceof DSLRuleData) {
+//            DSLRuleData data = (DSLRuleData) asset.content;
+//            repoAsset.updateContent( data.text.content );
+//        } else if (asset.metaData.format.equals( AssetFormats.MODEL )) {
+//            //do nothing, as we have an attachment
+//        } else {
+//            throw new SerializableException("Not able to handle that type of content just yet...");
+//        }
+//    }
     
-    private DSLRuleData getDummyDSLSuggestions() {
-        DSLRuleData data = new DSLRuleData();
-        data.lhsSuggestions = new String[] {"The persons name is {name}", "- age is less than {age}"};
-        data.rhsSuggestions = new String[] {"Reject claim", "Send notification to [{email}]"};                                                   
-        return data;
-    }
-
-    private SuggestionCompletionEngine getDummySuggestionEngine() {
-        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
-        
-        com.factTypes = new String[] {"Person", "Vehicle"};
-        
-        Map fieldTypes = new HashMap();
-        fieldTypes.put("Person.age", SuggestionCompletionEngine.TYPE_NUMERIC);
-        fieldTypes.put("Person.name", "String");
-        fieldTypes.put("Vehicle.type", "String");
-        fieldTypes.put("Vehcile.make", "String");
-        com.fieldTypes = fieldTypes;
-
-        Map fieldsForType = new HashMap();
-        fieldsForType.put("Person", new String[] {"age", "name"});
-        fieldsForType.put("Vehicle", new String[] {"type", "make"});
-        com.fieldsForType = fieldsForType;
-        
-        
-        DSLSentence sen = new DSLSentence();
-        sen.elements = new DSLSentenceFragment[2];
-        sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
-        sen.elements[1] = new DSLSentenceFragment("(something)", true);
-        com.conditionDSLSentences = new DSLSentence[] {sen};
-        
-        sen = new DSLSentence();
-        sen.elements = new DSLSentenceFragment[3];
-        sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
-        sen.elements[1] = new DSLSentenceFragment("(someone)", true);
-        sen.elements[2] = new DSLSentenceFragment("]", false);
-                
-        DSLSentence sen2 = new DSLSentence();
-        sen2.elements = new DSLSentenceFragment[1];
-        sen2.elements[0] = new DSLSentenceFragment("do nothing", false);        
-        
-        com.actionDSLSentences = new DSLSentence[] {sen, sen2};        
-        
-        return com;
-    }
     
-    /**
-     * 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 RuleModelData) {
-            RuleModelData data = (RuleModelData) asset.content;
-            repoAsset.updateContent( BRLPersistence.getInstance().toXML( data.model ) );
-        } else if (asset.content instanceof DSLRuleData) {
-            DSLRuleData data = (DSLRuleData) asset.content;
-            repoAsset.updateContent( data.text.content );
-        } else if (asset.metaData.format.equals( AssetFormats.MODEL )) {
-            //do nothing, as we have an attachment
-        } else {
-            throw new SerializableException("Not able to handle that type of content just yet...");
-        }
-    }
     
     
-    
-    
 
 }

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-02-28 02:20:55 UTC (rev 9831)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -21,6 +21,7 @@
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
+import org.drools.brms.server.contenthandler.ContentHandler;
 import org.drools.brms.server.util.MetaDataMapper;
 import org.drools.brms.server.util.RepositoryManager;
 import org.drools.brms.server.util.TableDisplayHandler;
@@ -94,15 +95,9 @@
             PackageItem pkg = repo.loadPackage( initialPackage );
             AssetItem asset = pkg.addAsset( ruleName, description, initialCategory, format );
             
-            if (format.equals( AssetFormats.DSL_TEMPLATE_RULE )) {
-                asset.updateContent( "when\n\nthen\n" );
-            } else if (format.equals( AssetFormats.FUNCTION )) {
-                asset.updateContent( "function " + ruleName + "(<args here>)\n\n\nend" );
-            } else if (format.equals( AssetFormats.DSL )) {
-                asset.updateContent( "[when]Condition sentence template {var}=" +
-                        "rule language mapping {var}\n" +
-                        "[then]Action sentence template=rule language mapping");
-            }
+            applyPreBuiltTemplates( ruleName,
+                                    format,
+                                    asset );
             repo.save();
             
             
@@ -113,6 +108,23 @@
 
     }
 
+    /**
+     * For some format types, we add some sugar by adding a new template.
+     */
+    private void applyPreBuiltTemplates(String ruleName,
+                                        String format,
+                                        AssetItem asset) {
+        if (format.equals( AssetFormats.DSL_TEMPLATE_RULE )) {
+            asset.updateContent( "when\n\nthen\n" );
+        } else if (format.equals( AssetFormats.FUNCTION )) {
+            asset.updateContent( "function " + ruleName + "(<args here>)\n\n\nend" );
+        } else if (format.equals( AssetFormats.DSL )) {
+            asset.updateContent( "[when]Condition sentence template {var}=" +
+                    "rule language mapping {var}\n" +
+                    "[then]Action sentence template=rule language mapping");
+        }
+    }
+
     public PackageConfigData[] listPackages() {
         Iterator pkgs = getRulesRepository().listPackages();
         List result = new ArrayList();
@@ -195,7 +207,7 @@
         asset.metaData = populateMetaData( item );
         
         //load the content
-        AssetContentFormatHandler handler = new AssetContentFormatHandler();
+        ContentHandler handler = ContentHandler.getHandler( asset.metaData.format );
         handler.retrieveAssetContent(asset, item);
         
         return asset;
@@ -268,7 +280,7 @@
         repoAsset.updateState( StateItem.DRAFT_STATE_NAME );
         
         repoAsset.updateCategoryList( meta.categories );
-        AssetContentFormatHandler handler = new AssetContentFormatHandler();
+        ContentHandler handler = ContentHandler.getHandler( repoAsset.getFormat() );//new AssetContentFormatHandler();
         handler.storeAssetContent( asset, repoAsset );
         
         repoAsset.checkin( meta.checkinComment );

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,77 @@
+package org.drools.brms.server.contenthandler;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.DSLSentence;
+import org.drools.brms.client.modeldriven.brxml.DSLSentenceFragment;
+import org.drools.brms.client.modeldriven.brxml.RuleModel;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleModelData;
+import org.drools.brms.server.util.BRLPersistence;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+public class BRXMLContentHandler extends ContentHandler {
+
+
+    public void retrieveAssetContent(RuleAsset asset,
+                                     AssetItem item) throws SerializableException {
+        RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
+
+        RuleModelData data = new RuleModelData();
+        data.model = model;
+        //TODO: replace with the code that loads it from a cache server side.
+        //otherwise it will look at the current package, and then work out the model from that.
+        data.completionEngine = getDummySuggestionEngine();
+
+    }
+
+    public void storeAssetContent(RuleAsset asset,
+                                  AssetItem repoAsset) throws SerializableException {
+        RuleModelData data = (RuleModelData) asset.content;
+        repoAsset.updateContent( BRLPersistence.getInstance().toXML( data.model ) );
+    }
+    
+    private SuggestionCompletionEngine getDummySuggestionEngine() {
+        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
+        
+        com.factTypes = new String[] {"Person", "Vehicle"};
+        
+        Map fieldTypes = new HashMap();
+        fieldTypes.put("Person.age", SuggestionCompletionEngine.TYPE_NUMERIC);
+        fieldTypes.put("Person.name", "String");
+        fieldTypes.put("Vehicle.type", "String");
+        fieldTypes.put("Vehcile.make", "String");
+        com.fieldTypes = fieldTypes;
+
+        Map fieldsForType = new HashMap();
+        fieldsForType.put("Person", new String[] {"age", "name"});
+        fieldsForType.put("Vehicle", new String[] {"type", "make"});
+        com.fieldsForType = fieldsForType;
+        
+        
+        DSLSentence sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[2];
+        sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
+        sen.elements[1] = new DSLSentenceFragment("(something)", true);
+        com.conditionDSLSentences = new DSLSentence[] {sen};
+        
+        sen = new DSLSentence();
+        sen.elements = new DSLSentenceFragment[3];
+        sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
+        sen.elements[1] = new DSLSentenceFragment("(someone)", true);
+        sen.elements[2] = new DSLSentenceFragment("]", false);
+                
+        DSLSentence sen2 = new DSLSentence();
+        sen2.elements = new DSLSentenceFragment[1];
+        sen2.elements[0] = new DSLSentenceFragment("do nothing", false);        
+        
+        com.actionDSLSentences = new DSLSentence[] {sen, sen2};        
+        
+        return com;
+    }    
+
+}


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ContentHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,61 @@
+package org.drools.brms.server.contenthandler;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.repository.AssetItem;
+import org.drools.repository.RulesRepositoryException;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+/**
+ * All content handlers must implement this, and be registered in content_types.properties
+ * @author Michael Neale
+ *
+ */
+public abstract class ContentHandler {
+
+    static Map handlers;
+    
+    static {
+        handlers = new HashMap() {{
+            put(AssetFormats.BUSINESS_RULE, new BRXMLContentHandler());
+            put(AssetFormats.DSL_TEMPLATE_RULE, new DSLRuleContentHandler());
+            put(AssetFormats.DRL, new PlainTextContentHandler());
+            put(AssetFormats.DSL, new PlainTextContentHandler());
+            put(AssetFormats.FUNCTION, new PlainTextContentHandler());
+            put(AssetFormats.MODEL, new ModelContentHandler());
+            put(AssetFormats.TECHNICAL_RULE, new PlainTextContentHandler());
+            
+        }};        
+    }
+    
+    /**
+     * When loading asset content.
+     * @param asset The target.
+     * @param item The source.
+     * @throws SerializableException
+     */
+    public abstract void retrieveAssetContent(RuleAsset asset,
+                                              AssetItem item) throws SerializableException;
+
+    /**
+     * For storing the asset content back into the repo node (any changes).
+     * @param asset
+     * @param repoAsset
+     * @throws SerializableException
+     */
+    public abstract void storeAssetContent(RuleAsset asset,
+                                           AssetItem repoAsset) throws SerializableException;
+
+    
+    public static ContentHandler getHandler(String format) {
+        
+        ContentHandler h =  (ContentHandler) handlers.get( format );
+        if (h == null) throw new IllegalArgumentException("Unable to handle the content type: " + format);
+        return h;
+    }
+    
+}
\ No newline at end of file


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/DSLRuleContentHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,38 @@
+package org.drools.brms.server.contenthandler;
+
+import org.drools.brms.client.rpc.DSLRuleData;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+public class DSLRuleContentHandler extends ContentHandler {
+
+
+    public void retrieveAssetContent(RuleAsset asset,
+                                     AssetItem item) throws SerializableException {
+        RuleContentText text = new RuleContentText();
+        text.content = item.getContent();
+        
+        //TODO: make this read in the DSL files in the current package.
+        DSLRuleData data = getDummyDSLSuggestions();
+        data.text = text;
+
+    }
+
+    public void storeAssetContent(RuleAsset asset,
+                                  AssetItem repoAsset) throws SerializableException {
+        DSLRuleData data = (DSLRuleData) asset.content;
+        repoAsset.updateContent( data.text.content );
+
+    }
+    
+    private DSLRuleData getDummyDSLSuggestions() {
+        DSLRuleData data = new DSLRuleData();
+        data.lhsSuggestions = new String[] {"The persons name is {name}", "- age is less than {age}"};
+        data.rhsSuggestions = new String[] {"Reject claim", "Send notification to [{email}]"};                                                   
+        return data;
+    }    
+
+}


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/ModelContentHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,21 @@
+package org.drools.brms.server.contenthandler;
+
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+public class ModelContentHandler extends ContentHandler {
+
+
+    public void retrieveAssetContent(RuleAsset asset,
+                                     AssetItem item) throws SerializableException {
+        //do nothing, as we have an attachment
+    }
+
+    public void storeAssetContent(RuleAsset asset,
+                                  AssetItem repoAsset) throws SerializableException {
+        //do nothing, as we have an attachment
+    }
+
+}


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/PlainTextContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/PlainTextContentHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/PlainTextContentHandler.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,27 @@
+package org.drools.brms.server.contenthandler;
+
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
+import org.drools.repository.AssetItem;
+
+import com.google.gwt.user.client.rpc.SerializableException;
+
+public class PlainTextContentHandler extends ContentHandler {
+
+
+    public void retrieveAssetContent(RuleAsset asset,
+                                     AssetItem item) throws SerializableException {
+        //default to text, goode olde texte, just like mum used to make.
+        RuleContentText text = new RuleContentText();
+        text.content = item.getContent();
+        asset.content = text;
+
+    }
+
+    public void storeAssetContent(RuleAsset asset,
+                                  AssetItem repoAsset) throws SerializableException {
+        repoAsset.updateContent( ((RuleContentText)asset.content).content ); 
+
+    }
+
+}


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/content_types.properties
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/content_types.properties	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/content_types.properties	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,6 @@
+drl=PlainTextContentHandler
+rule=PlainTextContentHandler
+FUNCTION=PlainTextContentHandler
+trule=DSLRuleContentHandler
+brxml=BRXMLContentHandler
+MODEL=BinaryContentHandler
\ No newline at end of file


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

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/package.html	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/package.html	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,4 @@
+<body>
+This package is for content format handlers.
+The Dublin Core format attribute specifies what content handler to load.
+</body>
\ No newline at end of file


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

Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ContentHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ContentHandlerTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ContentHandlerTest.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -0,0 +1,25 @@
+package org.drools.brms.server;
+
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.server.contenthandler.BRXMLContentHandler;
+import org.drools.brms.server.contenthandler.ContentHandler;
+import org.drools.brms.server.contenthandler.DSLRuleContentHandler;
+import org.drools.brms.server.contenthandler.PlainTextContentHandler;
+
+import junit.framework.TestCase;
+
+public class ContentHandlerTest extends TestCase {
+
+    
+    public void testContentHandlerCreate() {
+        assertTrue(ContentHandler.getHandler( AssetFormats.DRL ) instanceof PlainTextContentHandler);
+        assertTrue(ContentHandler.getHandler( AssetFormats.DSL_TEMPLATE_RULE ) instanceof DSLRuleContentHandler);
+        assertTrue(ContentHandler.getHandler( AssetFormats.BUSINESS_RULE ) instanceof BRXMLContentHandler);
+        try {
+            ContentHandler.getHandler( "XXX" );
+            fail("should have thrown an exception");
+        } catch (IllegalArgumentException e) {
+            assertNotNull(e.getMessage());
+        }
+    }
+}


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

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-02-28 02:20:55 UTC (rev 9831)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-02-28 02:52:09 UTC (rev 9832)
@@ -152,7 +152,7 @@
       impl.createCategory( "", "testLoadRuleAsset", "this is a cat" );
       
       
-      impl.createNewRule( "testLoadRuleAsset", "description", "testLoadRuleAsset", "testLoadRuleAsset", "txt" );
+      impl.createNewRule( "testLoadRuleAsset", "description", "testLoadRuleAsset", "testLoadRuleAsset", "drl" );
       
       TableDataResult res = impl.loadRuleListForCategories( "testLoadRuleAsset" );
       assertEquals(1, res.data.length);
@@ -175,7 +175,7 @@
       assertEquals("testLoadRuleAsset", asset.metaData.name);
       assertEquals("testLoadRuleAsset", asset.metaData.title);
       assertEquals("testLoadRuleAsset", asset.metaData.packageName);
-      assertEquals("txt", asset.metaData.format);
+      assertEquals("drl", asset.metaData.format);
       assertNotNull(asset.metaData.createdDate);
       
       assertEquals(1, asset.metaData.categories.length);
@@ -199,7 +199,7 @@
       impl.createCategory( "", "testLoadAssetHistory", "this is a cat" );
       
       
-      String uuid = impl.createNewRule( "testLoadAssetHistory", "description", "testLoadAssetHistory", "testLoadAssetHistory", "txt" );
+      String uuid = impl.createNewRule( "testLoadAssetHistory", "description", "testLoadAssetHistory", "testLoadAssetHistory", "drl" );
       RuleAsset asset = impl.loadRuleAsset( uuid );
       impl.checkinVersion( asset ); //1
       impl.checkinVersion( asset ); //2




More information about the jboss-svn-commits mailing list