Author: sergeyb
Date: Fri Mar 2 16:06:19 2012
New Revision: 1296270
URL: http://svn.apache.org/viewvc?rev=1296270&view=rev
Log:
[CXF-4153] Fixing Beanspector wrongly getting the property names in case of 'is'
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/search/Beanspector.java
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/search/FiqlParserTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/search/Beanspector.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/search/Beanspector.java?rev=1296270&r1=1296269&r2=1296270&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/search/Beanspector.java
(original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/search/Beanspector.java
Fri Mar 2 16:06:19 2012
@@ -60,9 +60,9 @@ class Beanspector<T> {
}
for (Method m : tclass.getMethods()) {
if (isGetter(m)) {
- getters.put(getterName(m), m);
+ getters.put(getPropertyName(m), m);
} else if (isSetter(m)) {
- setters.put(setterName(m), m);
+ setters.put(getPropertyName(m), m);
}
}
// check type equality for getter-setter pairs
@@ -171,8 +171,17 @@ class Beanspector<T> {
&& (m.getName().startsWith("get") || m.getName().startsWith("is"));
}
- private String getterName(Method m) {
- return m.getName().replace("is", "").replace("get", "").toLowerCase();
+ private String getPropertyName(Method m) {
+ // at this point the method is either getter or setter
+ String result = m.getName().toLowerCase();
+
+ if (result.startsWith("is")) {
+ result = result.substring(2, result.length());
+ } else {
+ result = result.substring(3, result.length());
+ }
+ return result;
+
}
private boolean isSetter(Method m) {
@@ -180,8 +189,6 @@ class Beanspector<T> {
&& (m.getName().startsWith("set") || m.getName().startsWith("is"));
}
- private String setterName(Method m) {
- return m.getName().replace("is", "").replace("set", "").toLowerCase();
- }
+
}
Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/search/FiqlParserTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/search/FiqlParserTest.java?rev=1296270&r1=1296269&r2=1296270&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/search/FiqlParserTest.java
(original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/search/FiqlParserTest.java
Fri Mar 2 16:06:19 2012
@@ -120,11 +120,6 @@ public class FiqlParserTest extends Asse
parser.parse("name==10");
}
- @Test(expected = IllegalArgumentException.class)
- public void testMismatchedAccessorTypes() throws FiqlParseException {
- new FiqlParser<MismatchedTypes>(MismatchedTypes.class);
- }
-
@Test
public void testParseName() throws FiqlParseException {
SearchCondition<Condition> filter = parser.parse("name==king");
@@ -329,14 +324,4 @@ public class FiqlParserTest extends Asse
}
- // TODO refactor to Beanspector unit tests
- @Ignore
- static class MismatchedTypes {
- public Date getFoo() {
- return null;
- }
-
- public void setFoo(String val) {
- }
- }
}
|