Example usage for com.liferay.portal.kernel.search QueryConfig isSearchSubfolders

List of usage examples for com.liferay.portal.kernel.search QueryConfig isSearchSubfolders

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.search QueryConfig isSearchSubfolders.

Prototype

public boolean isSearchSubfolders() 

Source Link

Usage

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;
}