[jboss-svn-commits] JBL Code SVN: r6894 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository test/java/org/drools/repository

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 18 13:08:36 EDT 2006


Author: michael.neale at jboss.com
Date: 2006-10-18 13:08:30 -0400 (Wed, 18 Oct 2006)
New Revision: 6894

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java
Log:
some improvements/refactoring/test coverage

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java	2006-10-18 16:05:52 UTC (rev 6893)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RuleItem.java	2006-10-18 17:08:30 UTC (rev 6894)
@@ -88,6 +88,19 @@
     }
     
     /**
+     * This will return the current state item as a displayable thing.
+     * If there is no state, it will be an empty string.
+     */
+    public String getStateDescription() {
+        StateItem state = this.getState();
+        if (state == null) {
+            return "";
+        } else {
+            return state.getName();
+        }
+    }
+    
+    /**
      * returns the contents of the rule node
      */
     public String getRuleContent() throws RulesRepositoryException {

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java	2006-10-18 16:05:52 UTC (rev 6893)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulePackageItem.java	2006-10-18 17:08:30 UTC (rev 6894)
@@ -13,7 +13,6 @@
 import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
-import javax.jcr.lock.LockException;
 
 import org.apache.log4j.Logger;
 
@@ -84,12 +83,22 @@
     }
 
 
+    /**
+     * Adds a rule to the current package with no category (not recommended !).
+     * Without categories, its going to be hard to find rules later on
+     * (unless packages are enough for you).
+     */
+    public RuleItem addRule(String ruleName, String description) {
+        return addRule(ruleName, description, null);
+    }
+    
 
     /**
      * This adds a rule to the current physical package (you can move it later).
+     * With the given category
      */
     public RuleItem addRule(String ruleName,
-                            String description) {
+                            String description, String initialCategory) {
         Node ruleNode;
         try {
 
@@ -117,6 +126,9 @@
 
             RuleItem rule = new RuleItem( this.rulesRepository,
                                           ruleNode );
+            if (initialCategory != null) {
+                rule.addCategory( initialCategory );
+            }
             //rule.setState( "Draft" );
             this.rulesRepository.save();
             

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-10-18 16:05:52 UTC (rev 6893)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RuleItemTestCase.java	2006-10-18 17:08:30 UTC (rev 6894)
@@ -125,6 +125,24 @@
             assertNotNull(prev);
             
     }
+    
+    public void testFindRulesByCategory() throws Exception {
+        
+        getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" );
+        getDefaultPackage().addRule( "testFindRulesByCategory1", "ya", "testFindRulesByCat" );
+        getDefaultPackage().addRule( "testFindRulesByCategory2", "ya", "testFindRulesByCat" );
+  
+        
+        List rules = getRepo().findRulesByCategory( "testFindRulesByCat" );
+        assertEquals(2, rules.size());
+        
+        for ( Iterator iter = rules.iterator(); iter.hasNext(); ) {
+            RuleItem element = (RuleItem) iter.next();
+            assertTrue(element.getName().startsWith( "testFindRulesByCategory" ));
+        }
+        
+    }
+    
 
     public void testRemoveTag() {
             RuleItem ruleItem1 = getDefaultPackage().addRule("testRemoveTag", "test content");
@@ -201,7 +219,11 @@
             
             ruleItem1.updateState("TestState1");
             assertNotNull(ruleItem1.getState());
-            assertEquals("TestState1", ruleItem1.getState().getName());                        
+            assertEquals("TestState1", ruleItem1.getState().getName());    
+            
+            ruleItem1 = getDefaultPackage().addRule( "testGetState2", "wa" );
+            assertEquals("", ruleItem1.getStateDescription());
+            assertNull(ruleItem1.getState());
     }
     
 




More information about the jboss-svn-commits mailing list