[jboss-svn-commits] JBL Code SVN: r32187 - in labs/jbossrules/trunk: drools-guvnor/src/test/java/org/drools/guvnor/server/rules and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 24 04:51:04 EDT 2010


Author: Rikkola
Date: 2010-03-24 04:51:03 -0400 (Wed, 24 Mar 2010)
New Revision: 32187

Added:
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/Agent.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
Log:
JBRULES-2456 : Field completion in guided rule editor doesn't show camel-case 'multi-words' java beans properties

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-03-24 08:12:46 UTC (rev 32186)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2010-03-24 08:51:03 UTC (rev 32187)
@@ -1,5 +1,6 @@
 package org.drools.guvnor.server.rules;
 
+import java.beans.Introspector;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Field;
@@ -455,7 +456,7 @@
             if ( method.getParameterTypes().length > 0 ) {
                 String name = method.getName();
                 if ( name.startsWith( "set" ) ) {
-                    name = name.substring( 3 ).toLowerCase();
+                    name = Introspector.decapitalize(name.substring(3));
                 }
 
                 String factField = shortTypeName + "." + name;
@@ -470,9 +471,9 @@
             } else if ( !method.getReturnType().equals( "void" ) ) {
                 String name = method.getName();
                 if ( name.startsWith( "get" ) ) {
-                    name = name.substring( 3 ).toLowerCase();
+                    name = Introspector.decapitalize(name.substring(3));
                 } else if ( name.startsWith( "is" ) ) {
-                    name = name.substring( 2 ).toLowerCase();
+                    name = Introspector.decapitalize(name.substring(2));
                 }
 
                 String factField = shortTypeName + "." + name;

Added: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/Agent.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/Agent.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/Agent.java	2010-03-24 08:51:03 UTC (rev 32187)
@@ -0,0 +1,86 @@
+package org.drools.guvnor.server.rules;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: Guillaume
+ * Date: 18 mars 2010
+ * Time: 11:05:26
+ * To change this template use File | Settings | File Templates.
+ */
+class Agent {
+    private Integer numeroAgent;
+    private String nom;
+    private String prenom;
+    private Date dateDeNaissance;
+    private String sexe;
+    private String numeroINSEE;
+    private String cleINSEE;
+
+    private boolean stagiaire;
+
+    public boolean isStagiaire() {
+        return stagiaire;
+    }
+
+    public void setStagiaire(boolean stagiaire) {
+        this.stagiaire = stagiaire;
+    }
+
+    public String getCleINSEE() {
+        return cleINSEE;
+    }
+
+    public void setCleINSEE(String cleINSEE) {
+        this.cleINSEE = cleINSEE;
+    }
+
+    public Date getDateDeNaissance() {
+        return dateDeNaissance;
+    }
+
+    public void setDateDeNaissance(Date dateDeNaissance) {
+        this.dateDeNaissance = dateDeNaissance;
+    }
+
+    public String getNom() {
+        return nom;
+    }
+
+    public void setNom(String nom) {
+        this.nom = nom;
+    }
+
+    public Integer getNumeroAgent() {
+        return numeroAgent;
+    }
+
+    public void setNumeroAgent(Integer numeroAgent) {
+        this.numeroAgent = numeroAgent;
+    }
+
+    public String getNumeroINSEE() {
+        return numeroINSEE;
+    }
+
+    public void setNumeroINSEE(String numeroINSEE) {
+        this.numeroINSEE = numeroINSEE;
+    }
+
+    public String getPrenom() {
+        return prenom;
+    }
+
+    public void setPrenom(String prenom) {
+        this.prenom = prenom;
+    }
+
+    public String getSexe() {
+        return sexe;
+    }
+
+    public void setSexe(String sexe) {
+        this.sexe = sexe;
+    }
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java	2010-03-24 08:12:46 UTC (rev 32186)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/rules/BRMSSuggestionCompletionLoaderTest.java	2010-03-24 08:51:03 UTC (rev 32187)
@@ -24,6 +24,7 @@
 import junit.framework.TestCase;
 
 import org.drools.guvnor.client.common.AssetFormats;
+import org.drools.guvnor.client.modeldriven.FieldAccessorsAndMutators;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.server.ServiceImplementation;
 import org.drools.guvnor.server.util.BRMSSuggestionCompletionLoader;
@@ -50,6 +51,44 @@
 
     }
 
+    public void testLoaderWithComplexFields() throws Exception {
+
+        RulesRepository repo = new RulesRepository(TestEnvironmentSessionHelper.getSession());
+        PackageItem item = repo.createPackage( "testLoaderWithComplexFields", "to test the loader" );
+        ServiceImplementation.updateDroolsHeader("import org.drools.guvnor.server.rules.Agent", item );
+        repo.save();
+
+        BRMSSuggestionCompletionLoader  loader = new BRMSSuggestionCompletionLoader();
+        String header = ServiceImplementation.getDroolsHeader(item);
+
+
+        SuggestionCompletionEngine engine = loader.getSuggestionEngine( item );
+        assertNotNull(engine);
+
+        String[] modelFields = engine.getModelFields("Agent");
+        System.out.println("modelFields: "+Arrays.asList(modelFields));
+        assertNotNull(modelFields);
+        assertEquals(9, modelFields.length );
+
+        modelFields = engine.getModelFields(FieldAccessorsAndMutators.BOTH, "Agent");
+        assertNotNull(modelFields);
+        System.out.println("modelFields: "+Arrays.asList(modelFields));
+        assertEquals(10, modelFields.length );
+        
+        modelFields = engine.getModelFields(FieldAccessorsAndMutators.ACCESSOR, "Agent");
+        assertNotNull(modelFields);
+        System.out.println("modelFields: "+Arrays.asList(modelFields));
+        assertEquals(9, modelFields.length );
+
+        modelFields = engine.getModelFields(FieldAccessorsAndMutators.MUTATOR, "Agent");
+        assertNotNull(modelFields);
+        System.out.println("modelFields: "+Arrays.asList(modelFields));
+        assertEquals(9, modelFields.length );
+
+    }
+
+
+
     public void testStripUnNeededFields() {
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
         String[] result = loader.removeIrrelevantFields( Arrays.asList(new String[] {"foo", "toString", "class", "hashCode"} ));



More information about the jboss-svn-commits mailing list