Example usage for com.liferay.portal.kernel.model TrashedModel isInTrashExplicitly

List of usage examples for com.liferay.portal.kernel.model TrashedModel isInTrashExplicitly

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.model TrashedModel isInTrashExplicitly.

Prototype

public boolean isInTrashExplicitly();

Source Link

Usage

From source file:com.liferay.trash.internal.search.TrashedModelDocumentContributor.java

License:Open Source License

@Override
public void contribute(Document document, BaseModel baseModel) {
    if ((baseModel == null) || !(baseModel instanceof TrashedModel)) {
        return;//from  w  w  w  . j  a  va  2s .co m
    }

    TrashedModel trashedModel = (TrashedModel) baseModel;

    if (!trashedModel.isInTrash()) {
        return;
    }

    TrashEntry trashEntry = null;

    try {
        trashEntry = trashedModel.getTrashEntry();
    } catch (PortalException pe) {
        if (_log.isDebugEnabled()) {
            _log.debug("Unable to get trash entry for " + trashedModel, pe);
        }
    }

    if (trashEntry == null) {
        document.addDate(Field.REMOVED_DATE, new Date());

        ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();

        if (serviceContext != null) {
            try {
                User user = _userLocalService.getUser(serviceContext.getUserId());

                document.addKeyword(Field.REMOVED_BY_USER_NAME, user.getFullName(), true);
            } catch (PortalException pe) {
                if (_log.isDebugEnabled()) {
                    _log.debug("Unable to locate user " + serviceContext.getUserId(), pe);
                }
            }
        }
    } else {
        document.addDate(Field.REMOVED_DATE, trashEntry.getCreateDate());
        document.addKeyword(Field.REMOVED_BY_USER_NAME, trashEntry.getUserName(), true);

        if (trashedModel.isInTrash() && !trashedModel.isInTrashExplicitly()) {

            document.addKeyword(Field.ROOT_ENTRY_CLASS_NAME, trashEntry.getClassName());
            document.addKeyword(Field.ROOT_ENTRY_CLASS_PK, trashEntry.getClassPK());
        }
    }

    TrashHandler trashHandler = trashedModel.getTrashHandler();

    try {
        TrashRenderer trashRenderer = null;

        if ((trashHandler != null) && (trashEntry != null)) {
            trashRenderer = trashHandler.getTrashRenderer(trashEntry.getClassPK());
        }

        if (trashRenderer != null) {
            document.addKeyword(Field.TYPE, trashRenderer.getType(), true);
        }
    } catch (PortalException pe) {
        if (_log.isDebugEnabled()) {
            _log.debug("Unable to get trash renderer for " + trashEntry.getClassName(), pe);
        }
    }
}