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
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
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
*/\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