You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2015/12/22 17:42:13 UTC

cxf git commit: Prototyping Search PropertyNameConverter

Repository: cxf
Updated Branches:
  refs/heads/master d1975ec8e -> cf34dcfc9


Prototyping Search PropertyNameConverter


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/cf34dcfc
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/cf34dcfc
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/cf34dcfc

Branch: refs/heads/master
Commit: cf34dcfc999a06a7e662f14d9cb34329e223b7a4
Parents: d1975ec
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Dec 22 16:41:53 2015 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Dec 22 16:41:53 2015 +0000

----------------------------------------------------------------------
 .../search/AbstractSearchConditionParser.java   | 10 ++++++++
 .../jaxrs/ext/search/PropertyNameConverter.java | 25 ++++++++++++++++++++
 .../cxf/jaxrs/ext/search/SearchUtils.java       |  1 +
 3 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/cf34dcfc/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionParser.java
----------------------------------------------------------------------
diff --git a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionParser.java b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionParser.java
index e0be04b..8dfdd80 100644
--- a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionParser.java
+++ b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionParser.java
@@ -67,6 +67,16 @@ public abstract class AbstractSearchConditionParser<T> implements SearchConditio
     
     protected String getActualSetterName(String setter) {
         String beanPropertyName = beanPropertiesMap == null ? null : beanPropertiesMap.get(setter);
+        if (beanPropertyName == null) {
+            Message m = JAXRSUtils.getCurrentMessage();
+            if (m != null) {
+                Object converterProp = m.getContextualProperty(SearchUtils.BEAN_PROPERTY_CONVERTER);
+                if (converterProp != null) {
+                    PropertyNameConverter converter = (PropertyNameConverter)converterProp;
+                    beanPropertyName = converter.getPropertyName(setter);
+                }
+            }
+        }
         return beanPropertyName != null ? beanPropertyName : setter;
     }
     

http://git-wip-us.apache.org/repos/asf/cxf/blob/cf34dcfc/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PropertyNameConverter.java
----------------------------------------------------------------------
diff --git a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PropertyNameConverter.java b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PropertyNameConverter.java
new file mode 100644
index 0000000..9e8b836
--- /dev/null
+++ b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/PropertyNameConverter.java
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jaxrs.ext.search;
+
+public interface PropertyNameConverter {
+
+    String getPropertyName(String setter);
+
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/cf34dcfc/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchUtils.java
----------------------------------------------------------------------
diff --git a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchUtils.java b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchUtils.java
index c35007d..45013c5 100644
--- a/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchUtils.java
+++ b/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/SearchUtils.java
@@ -39,6 +39,7 @@ public final class SearchUtils {
     public static final String TIMEZONE_SUPPORT_PROPERTY = "search.timezone.support";
     public static final String LAX_PROPERTY_MATCH = "search.lax.property.match";
     public static final String BEAN_PROPERTY_MAP = "search.bean.property.map";
+    public static final String BEAN_PROPERTY_CONVERTER = "search.bean.property.converter";
     public static final String SEARCH_VISITOR_PROPERTY = "search.visitor";
     public static final String DECODE_QUERY_VALUES = "search.decode.values";