List of usage examples for com.liferay.portal.kernel.search QueryConfig isSearchSubfolders
public boolean isSearchSubfolders()
From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilder.java
License:Open Source License
protected CMISCriterion buildFieldExpression(String field, String value, CMISSimpleExpressionOperator cmisSimpleExpressionOperator, QueryConfig queryConfig) throws SearchException { CMISCriterion cmisCriterion = null;// w w w . j av a 2 s .c o m boolean wildcard = false; if (CMISSimpleExpressionOperator.LIKE == cmisSimpleExpressionOperator) { wildcard = true; } if (field.equals(Field.FOLDER_ID)) { long folderId = GetterUtil.getLong(value); try { RepositoryEntry repositoryEntry = _repositoryEntryLocalService.fetchRepositoryEntry(folderId); if (repositoryEntry != null) { String objectId = repositoryEntry.getMappedId(); objectId = CMISParameterValueUtil.formatParameterValue(field, objectId, wildcard, queryConfig); if (queryConfig.isSearchSubfolders()) { cmisCriterion = new CMISInTreeExpression(objectId); } else { cmisCriterion = new CMISInFolderExpression(objectId); } } } catch (SystemException se) { throw new SearchException("Unable to determine folder {folderId=" + folderId + "}", se); } } else if (field.equals(Field.USER_ID)) { try { long userId = GetterUtil.getLong(value); User user = _userLocalService.getUserById(userId); String screenName = CMISParameterValueUtil.formatParameterValue(field, user.getScreenName(), wildcard, queryConfig); cmisCriterion = new CMISSimpleExpression(getCmisField(field), screenName, cmisSimpleExpressionOperator); } catch (Exception e) { if (e instanceof SearchException) { throw (SearchException) e; } throw new SearchException("Unable to determine user {" + field + "=" + value + "}", e); } } else { value = CMISParameterValueUtil.formatParameterValue(field, value, wildcard, queryConfig); cmisCriterion = new CMISSimpleExpression(getCmisField(field), value, cmisSimpleExpressionOperator); } return cmisCriterion; }