]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
CSPACE-5943: Check for workflow deleted state in query parameters sent with partial...
authorAron Roberts <aron@socrates.berkeley.edu>
Fri, 29 Mar 2013 01:33:42 +0000 (18:33 -0700)
committerAron Roberts <aron@socrates.berkeley.edu>
Fri, 29 Mar 2013 01:33:42 +0000 (18:33 -0700)
services/common/src/main/java/org/collectionspace/services/nuxeo/client/java/RepositoryJavaClientImpl.java

index 182199751434a8a61e29860bff91331b3febaa05..8fb2305dcdb49cef9fea27cb634bc35ad243564b 100644 (file)
@@ -934,16 +934,22 @@ public class RepositoryJavaClientImpl implements RepositoryClient<PoxPayloadIn,
                 " LEFT JOIN hierarchy h1 "
                + "  ON h1.parentid = hierarchy.id "
                 + " LEFT JOIN " + handler.getJDBCQueryParams().get(TERM_GROUP_TABLE_NAME_PARAM) + " tg "
-               + "   ON tg.id = h1.id "
-                + " LEFT JOIN misc "
-               + "   ON misc.id = hierarchy.id ";
-                        
-        String whereClause =              
-                " WHERE (tg.termdisplayname ILIKE ?) "
-                + "   AND (misc.lifecyclestate <> 'deleted') ";
+               + "   ON tg.id = h1.id ";
+        
+        String whereClause =
+                " WHERE (tg.termdisplayname ILIKE ?) ";
         
         List<String> params = new ArrayList<>();
         params.add(partialTerm + JDBCTools.SQL_WILDCARD);
+        
+        String includeDeleted = queryParams.getFirst(WorkflowClient.WORKFLOW_QUERY_NONDELETED);
+        if (includeDeleted != null && includeDeleted.equalsIgnoreCase(Boolean.FALSE.toString())) {
+            joinClauses = joinClauses
+                + " LEFT JOIN misc "
+               + "   ON misc.id = hierarchy.id ";
+            whereClause = whereClause
+                + "   AND (misc.lifecyclestate <> '" + WorkflowClient.WORKFLOWSTATE_DELETED + "') ";
+        }
 
         // If a particular authority is specified, restrict the query further
         // to records within that authority