Example usage for com.liferay.portal.kernel.search SearchContext isIncludeAttachments

List of usage examples for com.liferay.portal.kernel.search SearchContext isIncludeAttachments

Introduction

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

Prototype

public boolean isIncludeAttachments() 

Source Link

Usage

From source file:com.liferay.portlet.documentlibrary.util.DLFileEntryIndexer.java

License:Open Source License

@Override
public void postProcessContextQuery(BooleanQuery contextQuery, SearchContext searchContext) throws Exception {

    addStatus(contextQuery, searchContext);

    if (searchContext.isIncludeAttachments()) {
        addRelatedClassNames(contextQuery, searchContext);
    }//from w  w w.  j  ava  2 s. c  o  m

    contextQuery.addRequiredTerm(Field.HIDDEN, searchContext.isIncludeAttachments());

    addSearchClassTypeIds(contextQuery, searchContext);

    String ddmStructureFieldName = (String) searchContext.getAttribute("ddmStructureFieldName");
    Serializable ddmStructureFieldValue = searchContext.getAttribute("ddmStructureFieldValue");

    if (Validator.isNotNull(ddmStructureFieldName) && Validator.isNotNull(ddmStructureFieldValue)) {

        String[] ddmStructureFieldNameParts = StringUtil.split(ddmStructureFieldName, StringPool.SLASH);

        DDMStructure structure = DDMStructureLocalServiceUtil
                .getStructure(GetterUtil.getLong(ddmStructureFieldNameParts[1]));

        String fieldName = StringUtil.replaceLast(ddmStructureFieldNameParts[2],
                StringPool.UNDERLINE.concat(LocaleUtil.toLanguageId(searchContext.getLocale())),
                StringPool.BLANK);

        try {
            ddmStructureFieldValue = DDMUtil.getIndexedFieldValue(ddmStructureFieldValue,
                    structure.getFieldType(fieldName));
        } catch (StructureFieldException sfe) {
        }

        contextQuery.addRequiredTerm(ddmStructureFieldName,
                StringPool.QUOTE + ddmStructureFieldValue + StringPool.QUOTE);
    }

    String[] mimeTypes = (String[]) searchContext.getAttribute("mimeTypes");

    if (ArrayUtil.isNotEmpty(mimeTypes)) {
        BooleanQuery mimeTypesQuery = BooleanQueryFactoryUtil.create(searchContext);

        for (String mimeType : mimeTypes) {
            mimeTypesQuery.addTerm("mimeType",
                    StringUtil.replace(mimeType, CharPool.FORWARD_SLASH, CharPool.UNDERLINE));
        }

        contextQuery.add(mimeTypesQuery, BooleanClauseOccur.MUST);
    }
}