[jboss-svn-commits] JBL Code SVN: r5024 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/util/asm test/java/org/drools/util/asm
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 11 20:24:11 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-07-11 20:24:04 -0400 (Tue, 11 Jul 2006)
New Revision: 5024
Added:
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/AbstractClass.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceChildImpl.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/ClassFieldInspectorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceParent2.java
Log:
JBRULES-365 bug in fields inspection when creating Field Extractors for non-camelcase accessors
-Code now uses Introspector.decapitalize(name);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java 2006-07-12 00:10:28 UTC (rev 5023)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/asm/ClassFieldInspector.java 2006-07-12 00:24:04 UTC (rev 5024)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import java.beans.Introspector;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
@@ -275,11 +276,9 @@
}
private String calcFieldName(String name,
- final int offset) {
+ final int offset) {
name = name.substring( offset );
- final char first = Character.toLowerCase( name.charAt( 0 ) );
- name = first + name.substring( 1 );
- return name;
+ return Introspector.decapitalize(name);
}
}
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/AbstractClass.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/AbstractClass.java 2006-07-12 00:10:28 UTC (rev 5023)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/AbstractClass.java 2006-07-12 00:24:04 UTC (rev 5024)
@@ -0,0 +1,31 @@
+package org.drools.util.asm;
+
+public abstract class AbstractClass {
+ public String HTML;
+
+ public AbstractClass() {
+
+ }
+
+ public AbstractClass(String HTML) {
+ super();
+ this.HTML = HTML;
+ }
+
+ /**
+ * @return the uRI
+ */
+ public String getHTML() {
+ return this.HTML;
+ }
+
+ /**
+ * @param uri the uRI to set
+ */
+ public void setHTML(String HTML) {
+ this.HTML = HTML;
+ }
+
+
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/ClassFieldInspectorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/ClassFieldInspectorTest.java 2006-07-12 00:10:28 UTC (rev 5023)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/ClassFieldInspectorTest.java 2006-07-12 00:24:04 UTC (rev 5024)
@@ -36,7 +36,8 @@
((Method) ext.getPropertyGetters().get( 1 )).getName() );
assertEquals( "getName",
((Method) ext.getPropertyGetters().get( 2 )).getName() );
-
+
+
final Map names = ext.getFieldNames();
assertNotNull( names );
assertEquals( 7,
@@ -47,7 +48,8 @@
((Integer) names.get( "happy" )).intValue() );
assertEquals( 2,
((Integer) names.get( "name" )).intValue() );
-
+ assertNull( names.get( "nAme" ) );
+
}
public void testInterface() throws Exception {
@@ -91,9 +93,21 @@
}
public void testInheritedFields() throws Exception {
- final ClassFieldInspector ext = new ClassFieldInspector( BeanInherit.class );
+ ClassFieldInspector ext = new ClassFieldInspector( BeanInherit.class );
assertEquals( 5,
ext.getPropertyGetters().size() );
+
+ ext = new ClassFieldInspector( InterfaceChildImpl.class );
+ assertEquals( 8,
+ ext.getPropertyGetters().size() );
+ // test inheritence from abstract class
+ assertEquals( 4, ( (Integer) ext.getFieldNames().get( "HTML" )).intValue() );
+
+ // check normal field on child class
+ assertEquals( 1, ( (Integer) ext.getFieldNames().get( "baz" )).intValue() );
+
+ // test inheritence from an interface
+ assertEquals( 3, ( (Integer) ext.getFieldNames().get( "URI" )).intValue() );
}
public void testIntefaceInheritance() throws Exception {
@@ -101,7 +115,8 @@
final Map fields = ext.getFieldNames();
assertTrue( fields.containsKey( "foo" ) );
assertTrue( fields.containsKey( "bar" ) );
- assertTrue( fields.containsKey( "baz" ) );
+ assertTrue( fields.containsKey( "baz" ) );
+ assertTrue( fields.containsKey( "URI" ) );
}
public void testFieldIndexCalculation() {
@@ -145,6 +160,8 @@
((Method) methods.get( "happy" )).getName() );
assertEquals( "getName",
((Method) methods.get( "name" )).getName() );
+ // test case sensitive
+ assertNull( methods.get( "nAme" ));
assertEquals( "getAge",
((Method) methods.get( "age" )).getName() );
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceChildImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceChildImpl.java 2006-07-12 00:10:28 UTC (rev 5023)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceChildImpl.java 2006-07-12 00:24:04 UTC (rev 5024)
@@ -0,0 +1,73 @@
+package org.drools.util.asm;
+
+public class InterfaceChildImpl extends AbstractClass
+ implements
+ InterfaceChild {
+
+ private String bar;
+ private int foo;
+ private int baz;
+ private String URI;
+ public InterfaceChildImpl(String HTML,
+ String bar,
+ int foo,
+ int baz,
+ String uri) {
+ super(HTML);
+ this.bar = bar;
+ this.foo = foo;
+ this.baz = baz;
+ this.URI = uri;
+ }
+ /**
+ * @return the bar
+ */
+ public String getBar() {
+ return this.bar;
+ }
+ /**
+ * @param bar the bar to set
+ */
+ public void setBar(String bar) {
+ this.bar = bar;
+ }
+ /**
+ * @return the baz
+ */
+ public int getBaz() {
+ return this.baz;
+ }
+ /**
+ * @param baz the baz to set
+ */
+ public void setBaz(int baz) {
+ this.baz = baz;
+ }
+ /**
+ * @return the foo
+ */
+ public int getFoo() {
+ return this.foo;
+ }
+ /**
+ * @param foo the foo to set
+ */
+ public void setFoo(int foo) {
+ this.foo = foo;
+ }
+ /**
+ * @return the uRI
+ */
+ public String getURI() {
+ return this.URI;
+ }
+ /**
+ * @param uri the uRI to set
+ */
+ public void setURI(String uri) {
+ this.URI = uri;
+ }
+
+
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceParent2.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceParent2.java 2006-07-12 00:10:28 UTC (rev 5023)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/asm/InterfaceParent2.java 2006-07-12 00:24:04 UTC (rev 5024)
@@ -19,5 +19,7 @@
public interface InterfaceParent2 {
public int getBaz();
+
+ public String getURI();
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list