MultivaluedMap<String, String> queryParams = ui.getQueryParameters();\r
String keywords = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_KW);\r
String advancedSearch = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_AS);\r
+ String partialTerm = queryParams.getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM);\r
+\r
AbstractCommonList list;\r
if (keywords != null || advancedSearch != null) {\r
list = search(queryParams, keywords, advancedSearch);\r
DocumentHandler handler, \r
MultivaluedMap<String, String> queryParams,\r
String keywords,\r
- String advancedSearch) throws Exception {\r
+ String advancedSearch,\r
+ String partialTerm) throws Exception {\r
\r
- // perform a keyword search\r
- if (keywords != null && !keywords.isEmpty()) {\r
+ DocumentFilter docFilter = handler.getDocumentFilter();\r
+ if (partialTerm != null && !partialTerm.isEmpty()) {\r
+ String partialTermMatchField = getPartialTermMatchField();\r
+ String ptClause = QueryManager.createWhereClauseForPartialMatch(\r
+ partialTermMatchField, partialTerm);\r
+ docFilter.appendWhereClause(ptClause, IQueryManager.SEARCH_QUALIFIER_AND);\r
+ } else if (keywords != null && !keywords.isEmpty()) {\r
String whereClause = QueryManager.createWhereClauseFromKeywords(keywords);\r
- if(Tools.isEmpty(whereClause)) {\r
- if (logger.isDebugEnabled()) {\r
- logger.debug("The WHERE clause is empty for keywords: ["+keywords+"]");\r
- }\r
- } else {\r
- DocumentFilter documentFilter = handler.getDocumentFilter();\r
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);\r
+ if (Tools.isEmpty(whereClause) == false) {\r
+ docFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);\r
if (logger.isDebugEnabled()) {\r
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());\r
+ logger.debug("The WHERE clause is: " + docFilter.getWhereClause());\r
}\r
+ } else {\r
+ if (logger.isWarnEnabled()) {\r
+ logger.warn("The WHERE clause is empty for keywords: ["+keywords+"]");\r
+ }\r
}\r
}\r
+ \r
+ //\r
+ // Add an advance search clause if one was specified\r
+ //\r
if (advancedSearch != null && !advancedSearch.isEmpty()) {\r
String whereClause = QueryManager.createWhereClauseFromAdvancedSearch(advancedSearch);\r
- DocumentFilter documentFilter = handler.getDocumentFilter();\r
- documentFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);\r
+ docFilter.appendWhereClause(whereClause, IQueryManager.SEARCH_QUALIFIER_AND);\r
if (logger.isDebugEnabled()) {\r
- logger.debug("The WHERE clause is: " + documentFilter.getWhereClause());\r
+ logger.debug("The WHERE clause is: " + docFilter.getWhereClause());\r
}\r
}\r
getRepositoryClient(ctx).getFiltered(ctx, handler);\r
\r
protected AbstractCommonList search(MultivaluedMap<String, String> queryParams,\r
String keywords,\r
- String advancedSearch) {\r
+ String advancedSearch,\r
+ String partialTerm) {\r
ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx;\r
AbstractCommonList result = null;\r
try {\r
ctx = createServiceContext(queryParams);\r
DocumentHandler handler = createDocumentHandler(ctx);\r
- result = search(ctx, handler, queryParams, keywords, advancedSearch);\r
+ result = search(ctx, handler, queryParams, keywords, advancedSearch, partialTerm);\r
} catch (Exception e) {\r
throw bigReThrow(e, ServiceMessages.SEARCH_FAILED);\r
}\r
import org.collectionspace.services.client.workflow.WorkflowClient;
import org.collectionspace.services.common.ResourceBase;
import org.collectionspace.services.common.authorityref.AuthorityRefList;
+import org.collectionspace.services.common.config.ServiceConfigUtils;
import org.collectionspace.services.common.context.JaxRsContext;
import org.collectionspace.services.common.context.MultipartServiceContext;
import org.collectionspace.services.common.context.ServiceBindingUtils;
* tenant bindings config file.
*/
public DocHandlerParams.Params getDocHandlerParams() throws DocumentException {
- MultipartServiceContext sc = (MultipartServiceContext) getServiceContext();
- ServiceBindingType sb = sc.getServiceBinding();
- DocHandlerParams dhb = sb.getDocHandlerParams();
- if (dhb != null && dhb.getParams() != null) {
- return dhb.getParams();
- }
- throw new DocumentException("No DocHandlerParams configured for: "
- + sb.getName());
+ return ServiceConfigUtils.getDocHandlerParams(this.getServiceContext());
}
@Override