From e8455342e0cb99cded73091b95ab068cfdb39576 Mon Sep 17 00:00:00 2001 From: rfeng Date: Fri, 14 Sep 2012 23:26:38 +0000 Subject: Enhance the partial read support so that we can use the full property names in the object tree git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1384975 13f79535-47bb-0310-9956-ffa450edef68 --- .../rest/provider/DataBindingJAXRSWriter.java | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org') diff --git a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSWriter.java b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSWriter.java index 9f3cf7b919..4ee1ff8c92 100644 --- a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSWriter.java +++ b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/DataBindingJAXRSWriter.java @@ -49,6 +49,10 @@ import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML, MediaType.WILDCARD}) public class DataBindingJAXRSWriter extends DataBindingJAXRSProvider implements MessageBodyWriter { + public static final String FIELDS = "fields"; + public static final String EXCLUDED_FIELDS = "excludedFields"; + public static final String INCLUDED_FIELDS = "includedFields"; + public DataBindingJAXRSWriter(ExtensionPointRegistry registry) { super(registry); } @@ -99,15 +103,28 @@ public class DataBindingJAXRSWriter extends DataBindingJAXRSProvider implemen HTTPContext context = ThreadHTTPContext.getHTTPContext(); if (context != null) { metadata = new HashMap(); - String included = context.getHttpRequest().getParameter("includedFields"); - String excluded = context.getHttpRequest().getParameter("excludedFields"); + String included = context.getHttpRequest().getParameter(INCLUDED_FIELDS); + String excluded = context.getHttpRequest().getParameter(EXCLUDED_FIELDS); Set includedFields = tokenize(included); if (includedFields != null) { - metadata.put("includedFields", includedFields); + metadata.put(INCLUDED_FIELDS, includedFields); } Set excludedFields = tokenize(excluded); if (excludedFields != null) { - metadata.put("excludedFields", excludedFields); + metadata.put(EXCLUDED_FIELDS, excludedFields); + } + + // The syntax is fields=f1,f2,-f3 + String fields = (String)context.getHttpRequest().getParameter(FIELDS); + if (fields != null) { + Set fieldSet = tokenize(fields); + for (String f : fieldSet) { + if (f.startsWith("-")) { + excludedFields.add(f.substring(1)); + } else { + includedFields.add(f); + } + } } } -- cgit v1.2.3