]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-4084 Fixed problem with refObjs call that did not set fieldsReturned. Helps...
authorPatrick Schmitz <pschmitz@berkeley.edu>
Thu, 17 May 2012 16:57:20 +0000 (09:57 -0700)
committerPatrick Schmitz <pschmitz@berkeley.edu>
Thu, 17 May 2012 16:57:20 +0000 (09:57 -0700)
services/common-api/src/main/java/org/collectionspace/services/common/api/Tools.java
services/common/src/main/java/org/collectionspace/services/common/vocabulary/RefNameServiceUtils.java
services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/CommonList.java

index c56016185aa18994c26fef2ee1da8e303497e60b..905127f372a5d89c99e8fadd6184fb04541451b7 100644 (file)
@@ -157,6 +157,26 @@ public class Tools {
     public static String getStackTrace(Throwable e){\r
         return getStackTrace(e, -1);\r
     }\r
+    \r
+    public static String implode(String strings[], String sep) {\r
+               String implodedString;\r
+               if (strings.length == 0) {\r
+                       implodedString = "";\r
+               } else {\r
+                       StringBuffer sb = new StringBuffer();\r
+                       sb.append(strings[0]);\r
+                       for (int i = 1; i < strings.length; i++) {\r
+                               if (strings[i] != null && !strings[i].trim().isEmpty()) {\r
+                                       sb.append(sep);\r
+                                       sb.append(strings[i]);\r
+                               }\r
+                       }\r
+                       implodedString = sb.toString();\r
+               }\r
+               return implodedString;\r
+       }\r
+               \r
+\r
 \r
 \r
     /** @param includeLines if zero, returns all lines */\r
index 14e3193c01a3df5f9a9724183d87a70c42a61ac0..4c381d6908569eb24ac76a410ce22dd373bee9bb 100644 (file)
@@ -235,6 +235,20 @@ public class RefNameServiceUtils {
                commonList.setItemsInPage(docList.size());\r
                // set the total result size\r
                commonList.setTotalItems(docList.totalSize());\r
+               // set the fieldsReturned list. Even though this is a fixed schema, app layer treats\r
+               // this like other abstract common lists\r
+               /*\r
+                       <xs:element name="docType"         type="xs:string" minOccurs="1" />\r
+                       <xs:element name="docId"           type="xs:string" minOccurs="1" />\r
+                       <xs:element name="docNumber"       type="xs:string" minOccurs="0" />\r
+                       <xs:element name="docName"         type="xs:string" minOccurs="0" />\r
+                       <xs:element name="sourceField"     type="xs:string" minOccurs="1" />\r
+                       <xs:element name="uri"             type="xs:anyURI" minOccurs="1" />\r
+                       <xs:element name="updatedAt"       type="xs:string" minOccurs="1" />\r
+                       <xs:element name="workflowState"   type="xs:string" minOccurs="1" />\r
+                       */\r
+               String fieldList = "docType|docId|docNumber|docName|sourceField|uri|updatedAt|workflowState";\r
+               commonList.setFieldsReturned(fieldList);\r
                \r
                int nRefsFound = processRefObjsDocList(docList, refName, queriedServiceBindings, authRefFieldsByService,\r
                                                                list, null);\r
index df6bfbfa3cf670b6bdcb6e4e06324c3041fa2726..6dde0577570ed5da330a5d38c33e1edd188d06d7 100644 (file)
@@ -28,6 +28,7 @@ import java.util.HashMap;
 import java.util.Iterator;\r
 import java.util.List;\r
 \r
+import org.collectionspace.services.common.api.Tools;\r
 import org.collectionspace.services.jaxb.AbstractCommonList;\r
 \r
 import org.apache.commons.lang.builder.ToStringBuilder;\r
@@ -109,29 +110,10 @@ public class CommonList extends AbstractCommonList {
         */\r
        public void setFieldsReturned(String[] fieldKeys) {\r
                this.fieldKeys = fieldKeys;\r
-               String fieldsImploded = implode(fieldKeys, "|");  \r
+               String fieldsImploded = Tools.implode(fieldKeys, "|");  \r
                setFieldsReturned(fieldsImploded);\r
        }\r
 \r
-       // TODO This should be in common, but then we have mutual dependencies. Sigh.\r
-       private String implode(String strings[], String sep) {\r
-               String implodedString;\r
-               if (strings.length == 0) {\r
-                       implodedString = "";\r
-               } else {\r
-                       StringBuffer sb = new StringBuffer();\r
-                       sb.append(strings[0]);\r
-                       for (int i = 1; i < strings.length; i++) {\r
-                               if (strings[i] != null && !strings[i].trim().isEmpty()) {\r
-                                       sb.append(sep);\r
-                                       sb.append(strings[i]);\r
-                               }\r
-                       }\r
-                       implodedString = sb.toString();\r
-               }\r
-               return implodedString;\r
-       }\r
-               \r
        private void addItem(List<Element> anyList, String key, Object value) {\r
                if (value != null ) {\r
                        Element el = doc.createElement(key);\r