Example usage for com.liferay.portal.kernel.workflow WorkflowConstants ACTION_SAVE_DRAFT

List of usage examples for com.liferay.portal.kernel.workflow WorkflowConstants ACTION_SAVE_DRAFT

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.workflow WorkflowConstants ACTION_SAVE_DRAFT.

Prototype

int ACTION_SAVE_DRAFT

To view the source code for com.liferay.portal.kernel.workflow WorkflowConstants ACTION_SAVE_DRAFT.

Click Source Link

Usage

From source file:com.liferay.portlet.messageboards.lar.MBPortletDataHandlerImpl.java

License:Open Source License

protected void importMessage(PortletDataContext portletDataContext, Element messageElement, MBMessage message)
        throws Exception {

    long userId = portletDataContext.getUserId(message.getUserUuid());
    String userName = message.getUserName();

    Map<Long, Long> categoryPKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBCategory.class);

    long categoryId = MapUtil.getLong(categoryPKs, message.getCategoryId(), message.getCategoryId());

    Map<Long, Long> threadPKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBThread.class);

    long threadId = MapUtil.getLong(threadPKs, message.getThreadId(), 0);

    Map<Long, Long> messagePKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(MBMessage.class);

    long parentMessageId = MapUtil.getLong(messagePKs, message.getParentMessageId(),
            message.getParentMessageId());

    List<String> existingFiles = new ArrayList<String>();

    List<ObjectValuePair<String, InputStream>> inputStreamOVPs = getAttachments(portletDataContext,
            messageElement, message);/*from   ww  w .j a v a  2 s  .  c o m*/

    try {
        ServiceContext serviceContext = portletDataContext.createServiceContext(messageElement, message,
                _NAMESPACE);

        if (message.getStatus() != WorkflowConstants.STATUS_APPROVED) {
            serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);
        }

        categoryId = getCategoryId(portletDataContext, message, categoryPKs, categoryId);

        MBMessage importedMessage = null;

        if (portletDataContext.isDataStrategyMirror()) {
            MBMessage existingMessage = MBMessageUtil.fetchByUUID_G(message.getUuid(),
                    portletDataContext.getScopeGroupId());

            if (existingMessage == null) {
                serviceContext.setUuid(message.getUuid());

                importedMessage = MBMessageLocalServiceUtil.addMessage(userId, userName,
                        portletDataContext.getScopeGroupId(), categoryId, threadId, parentMessageId,
                        message.getSubject(), message.getBody(), message.getFormat(), inputStreamOVPs,
                        message.getAnonymous(), message.getPriority(), message.getAllowPingbacks(),
                        serviceContext);
            } else {
                importedMessage = MBMessageLocalServiceUtil.updateMessage(userId,
                        existingMessage.getMessageId(), message.getSubject(), message.getBody(),
                        inputStreamOVPs, existingFiles, message.getPriority(), message.getAllowPingbacks(),
                        serviceContext);
            }
        } else {
            importedMessage = MBMessageLocalServiceUtil.addMessage(userId, userName,
                    portletDataContext.getScopeGroupId(), categoryId, threadId, parentMessageId,
                    message.getSubject(), message.getBody(), message.getFormat(), inputStreamOVPs,
                    message.getAnonymous(), message.getPriority(), message.getAllowPingbacks(), serviceContext);
        }

        threadPKs.put(message.getThreadId(), importedMessage.getThreadId());

        portletDataContext.importClassedModel(message, importedMessage, _NAMESPACE);
    } finally {
        for (ObjectValuePair<String, InputStream> inputStreamOVP : inputStreamOVPs) {

            InputStream inputStream = inputStreamOVP.getValue();

            StreamUtil.cleanUp(inputStream);
        }
    }
}

From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java

License:Open Source License

public MBMessage updateMessage(long userId, long messageId, String subject, String body,
        List<ObjectValuePair<String, InputStream>> inputStreamOVPs, List<String> existingFiles, double priority,
        boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException {

    // Message/*from w  w  w  .  j  a v  a  2 s  .  com*/

    MBMessage message = mbMessagePersistence.findByPrimaryKey(messageId);

    subject = ModelHintsUtil.trimString(MBMessage.class.getName(), "subject", subject);
    body = SanitizerUtil.sanitize(message.getCompanyId(), message.getGroupId(), userId,
            MBMessage.class.getName(), messageId, "text/" + message.getFormat(), body);
    Date now = new Date();

    validate(subject, body);

    subject = getSubject(subject, body);
    body = getBody(subject, body);

    message.setModifiedDate(serviceContext.getModifiedDate(now));
    message.setSubject(subject);
    message.setBody(body);
    message.setAttachments(!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty());
    message.setAllowPingbacks(allowPingbacks);

    if (priority != MBThreadConstants.PRIORITY_NOT_GIVEN) {
        message.setPriority(priority);
    }

    if (!message.isPending() && (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT)) {

        message.setStatus(WorkflowConstants.STATUS_DRAFT);
    }

    // Attachments

    long companyId = message.getCompanyId();
    long repositoryId = CompanyConstants.SYSTEM;
    String dirName = message.getAttachmentsDir();

    if (!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty()) {
        try {
            DLStoreUtil.addDirectory(companyId, repositoryId, dirName);
        } catch (DuplicateDirectoryException dde) {
        }

        String[] fileNames = DLStoreUtil.getFileNames(companyId, repositoryId, dirName);

        for (String fileName : fileNames) {
            if (!existingFiles.contains(fileName)) {
                DLStoreUtil.deleteFile(companyId, repositoryId, fileName);
            }
        }

        for (int i = 0; i < inputStreamOVPs.size(); i++) {
            ObjectValuePair<String, InputStream> inputStreamOVP = inputStreamOVPs.get(i);

            String fileName = inputStreamOVP.getKey();
            InputStream inputStream = inputStreamOVP.getValue();

            try {
                DLStoreUtil.addFile(companyId, repositoryId, dirName + "/" + fileName, inputStream);
            } catch (DuplicateFileException dfe) {
            }
        }
    } else {
        try {
            DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName);
        } catch (NoSuchDirectoryException nsde) {
        }
    }

    mbMessagePersistence.update(message, false);

    // Thread

    MBThread thread = mbThreadPersistence.findByPrimaryKey(message.getThreadId());

    if ((priority != MBThreadConstants.PRIORITY_NOT_GIVEN) && (thread.getPriority() != priority)) {

        thread.setPriority(priority);

        mbThreadPersistence.update(thread, false);

        updatePriorities(thread.getThreadId(), priority);
    }

    // Asset

    updateAsset(userId, message, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(),
            serviceContext.getAssetLinkEntryIds());

    // Expando

    ExpandoBridge expandoBridge = message.getExpandoBridge();

    expandoBridge.setAttributes(serviceContext);

    // Workflow

    serviceContext.setAttribute("update", Boolean.TRUE.toString());

    WorkflowHandlerRegistryUtil.startWorkflowInstance(companyId, message.getGroupId(), userId,
            message.getWorkflowClassName(), message.getMessageId(), message, serviceContext);

    return message;
}

From source file:com.liferay.portlet.wiki.lar.WikiPortletDataHandlerImpl.java

License:Open Source License

public static void importPage(PortletDataContext portletDataContext, Element pageElement, WikiPage page)
        throws Exception {

    long userId = portletDataContext.getUserId(page.getUserUuid());

    Map<Long, Long> nodePKs = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(WikiNode.class);

    long nodeId = MapUtil.getLong(nodePKs, page.getNodeId(), page.getNodeId());

    String content = JournalPortletDataHandlerImpl.importReferencedContent(portletDataContext, pageElement,
            page.getContent());/*from  w w w . j  a  va  2 s  .  c om*/

    page.setContent(content);

    ServiceContext serviceContext = portletDataContext.createServiceContext(pageElement, page, _NAMESPACE);

    if (page.getStatus() != WorkflowConstants.STATUS_APPROVED) {
        serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);
    }

    WikiPage importedPage = null;

    WikiPage existingPage = WikiPageUtil.fetchByUUID_G(page.getUuid(), portletDataContext.getScopeGroupId());

    if (existingPage == null) {
        try {
            existingPage = WikiPageLocalServiceUtil.getPage(nodeId, page.getTitle());
        } catch (NoSuchPageException nspe) {
        }
    }

    if (existingPage == null) {
        serviceContext.setUuid(page.getUuid());

        importedPage = WikiPageLocalServiceUtil.addPage(userId, nodeId, page.getTitle(), page.getVersion(),
                page.getContent(), page.getSummary(), page.isMinorEdit(), page.getFormat(), page.getHead(),
                page.getParentTitle(), page.getRedirectTitle(), serviceContext);
    } else {
        importedPage = WikiPageLocalServiceUtil.updatePage(userId, nodeId, existingPage.getTitle(), 0,
                page.getContent(), page.getSummary(), page.isMinorEdit(), page.getFormat(),
                page.getParentTitle(), page.getRedirectTitle(), serviceContext);
    }

    if (portletDataContext.getBooleanParameter(_NAMESPACE, "attachments") && page.isHead()) {

        for (Element attachmentElement : pageElement.elements("attachment")) {

            String name = attachmentElement.attributeValue("name");
            String binPath = attachmentElement.attributeValue("bin-path");

            InputStream inputStream = null;

            try {
                inputStream = portletDataContext.getZipEntryAsInputStream(binPath);

                WikiPageLocalServiceUtil.addPageAttachment(importedPage.getCompanyId(),
                        importedPage.getAttachmentsDir(), importedPage.getModifiedDate(), name, inputStream);
            } finally {
                StreamUtil.cleanUp(inputStream);
            }
        }
    }

    portletDataContext.importClassedModel(page, importedPage, _NAMESPACE);
}

From source file:com.liferay.privatemessaging.service.impl.UserThreadLocalServiceImpl.java

License:Open Source License

protected MBMessage addPrivateMessage(long userId, long mbThreadId, long parentMBMessageId,
        List<User> recipients, String subject, String body,
        List<ObjectValuePair<String, InputStream>> inputStreamOVPs, ThemeDisplay themeDisplay)
        throws PortalException {

    User user = UserLocalServiceUtil.getUser(userId);
    Group group = GroupLocalServiceUtil.getCompanyGroup(user.getCompanyId());
    long categoryId = PrivateMessagingConstants.PRIVATE_MESSAGING_CATEGORY_ID;

    if (Validator.isNull(subject)) {
        subject = StringUtil.shorten(body, 50);
    }/*  ww  w .ja v a 2  s . c  o  m*/

    boolean anonymous = false;
    double priority = 0.0;
    boolean allowPingbacks = false;

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    MBMessage mbMessage = MBMessageLocalServiceUtil.addMessage(userId, user.getScreenName(), group.getGroupId(),
            categoryId, mbThreadId, parentMBMessageId, subject, body, MBMessageConstants.DEFAULT_FORMAT,
            inputStreamOVPs, anonymous, priority, allowPingbacks, serviceContext);

    if (mbThreadId == 0) {
        for (User recipient : recipients) {
            if (recipient.getUserId() != userId) {
                addUserThread(recipient.getUserId(), mbMessage.getThreadId(), mbMessage.getMessageId(), false,
                        false);
            }
        }

        addUserThread(userId, mbMessage.getThreadId(), mbMessage.getMessageId(), true, false);
    } else {
        List<UserThread> userThreads = userThreadPersistence.findByMBThreadId(mbMessage.getThreadId());

        for (UserThread userThread : userThreads) {
            userThread.setModifiedDate(new Date());

            if (userThread.getUserId() == userId) {
                userThread.setRead(true);
            } else {
                userThread.setRead(false);
            }

            if (userThread.isDeleted()) {
                userThread.setTopMBMessageId(mbMessage.getMessageId());
                userThread.setDeleted(false);
            }

            userThreadPersistence.update(userThread);
        }
    }

    // Email

    try {
        sendEmail(mbMessage.getMessageId(), themeDisplay);
    } catch (Exception e) {
        throw new SystemException(e);
    }

    // Notifications

    sendNotificationEvent(mbMessage);

    return mbMessage;
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testDeleteTrashVersions() throws Exception {
    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    int initialTrashVersionsCount = TrashVersionLocalServiceUtil.getTrashVersionsCount();

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(getBaseModelClassName());

    trashHandler.deleteTrashEntry(getTrashEntryClassPK(baseModel));

    Assert.assertEquals(initialTrashVersionsCount, TrashVersionLocalServiceUtil.getTrashVersionsCount());
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testTrashVersionParentBaseModel() throws Exception {
    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsVersionableBaseModel);

    WhenIsVersionableBaseModel whenIsVersionableBaseModel = (WhenIsVersionableBaseModel) this;

    int initialTrashEntriesCount = getTrashEntriesCount(group.getGroupId());

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    baseModel = whenIsVersionableBaseModel.expireBaseModel(baseModel, serviceContext);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    WorkflowedModel workflowedModel = getWorkflowedModel(baseModel);

    List<Integer> originalStatuses = new ArrayList<>();

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    Assert.assertEquals(initialTrashEntriesCount + 1, getTrashEntriesCount(group.getGroupId()));
    Assert.assertTrue(isInTrashContainer(baseModel));
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testTrashVersionParentBaseModelAndCustomRestore() throws Exception {

    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeFalse(this instanceof WhenIsMoveableFromTrashBaseModel);
    Assume.assumeTrue(this instanceof WhenIsRestorableParentBaseModelFromTrash);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsVersionableBaseModel);

    WhenIsVersionableBaseModel whenIsVersionableBaseModel = (WhenIsVersionableBaseModel) this;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    baseModel = whenIsVersionableBaseModel.expireBaseModel(baseModel, serviceContext);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    WorkflowedModel workflowedModel = getWorkflowedModel(baseModel);

    List<Integer> originalStatuses = new ArrayList<>();

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    WhenIsRestorableParentBaseModelFromTrash whenIsRestorableParentBaseModelFromTrash = (WhenIsRestorableParentBaseModelFromTrash) this;

    whenIsRestorableParentBaseModelFromTrash
            .restoreParentBaseModelFromTrash((Long) parentBaseModel.getPrimaryKeyObj());

    List<? extends WorkflowedModel> childrenWorkflowedModels = whenIsRestorableParentBaseModelFromTrash
            .getChildrenWorkflowedModels(parentBaseModel);

    for (int i = 1; i <= childrenWorkflowedModels.size(); i++) {
        WorkflowedModel childrenWorkflowedModel = childrenWorkflowedModels.get(i - 1);

        int originalStatus = originalStatuses.get(childrenWorkflowedModels.size() - i);

        Assert.assertEquals(originalStatus, childrenWorkflowedModel.getStatus());
    }//from w w  w  .  j  av  a2 s  . c  o m
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testTrashVersionParentBaseModelAndRestore() throws Exception {
    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeTrue(this instanceof WhenIsMoveableFromTrashBaseModel);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsVersionableBaseModel);

    WhenIsVersionableBaseModel whenIsVersionableBaseModel = (WhenIsVersionableBaseModel) this;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    int initialBaseModelsCount = getNotInTrashBaseModelsCount(parentBaseModel);

    int initialTrashEntriesCount = getTrashEntriesCount(group.getGroupId());

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    baseModel = whenIsVersionableBaseModel.expireBaseModel(baseModel, serviceContext);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    WorkflowedModel workflowedModel = getWorkflowedModel(baseModel);

    List<Integer> originalStatuses = new ArrayList<>();

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    WhenIsMoveableFromTrashBaseModel whenIsMoveableFromTrashBaseModel = (WhenIsMoveableFromTrashBaseModel) this;

    BaseModel<?> newParentBaseModel = whenIsMoveableFromTrashBaseModel.moveBaseModelFromTrash(baseModel, group,
            serviceContext);/*from w  w  w  .j ava2 s . c om*/

    baseModel = getBaseModel((Long) baseModel.getPrimaryKeyObj());

    Assert.assertEquals(initialBaseModelsCount + 1, getNotInTrashBaseModelsCount(newParentBaseModel));
    Assert.assertEquals(initialTrashEntriesCount + 1, getTrashEntriesCount(group.getGroupId()));
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testTrashVersionParentBaseModelAndRestoreIsNotInTrashContainer() throws Exception {

    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeTrue(this instanceof WhenIsMoveableFromTrashBaseModel);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsVersionableBaseModel);

    WhenIsVersionableBaseModel whenIsVersionableBaseModel = (WhenIsVersionableBaseModel) this;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    baseModel = whenIsVersionableBaseModel.expireBaseModel(baseModel, serviceContext);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    WorkflowedModel workflowedModel = getWorkflowedModel(baseModel);

    List<Integer> originalStatuses = new ArrayList<>();

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    WhenIsMoveableFromTrashBaseModel whenIsMoveableFromTrashBaseModel = (WhenIsMoveableFromTrashBaseModel) this;

    whenIsMoveableFromTrashBaseModel.moveBaseModelFromTrash(baseModel, group, serviceContext);

    baseModel = getBaseModel((Long) baseModel.getPrimaryKeyObj());

    Assert.assertFalse(isInTrashContainer(baseModel));
}

From source file:com.liferay.trash.test.util.BaseTrashHandlerTestCase.java

License:Open Source License

@Test
public void testTrashVersionParentBaseModelAndRestoreIsVisible() throws Exception {

    Assume.assumeTrue(this instanceof WhenHasParent);
    Assume.assumeTrue(this instanceof WhenIsAssetableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsMoveableFromTrashBaseModel);
    Assume.assumeTrue(this instanceof WhenIsUpdatableBaseModel);
    Assume.assumeTrue(this instanceof WhenIsVersionableBaseModel);

    WhenIsVersionableBaseModel whenIsVersionableBaseModel = (WhenIsVersionableBaseModel) this;

    ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(group.getGroupId());

    BaseModel<?> parentBaseModel = getParentBaseModel(group, serviceContext);

    baseModel = addBaseModel(parentBaseModel, serviceContext);

    baseModel = whenIsVersionableBaseModel.expireBaseModel(baseModel, serviceContext);

    WhenIsUpdatableBaseModel whenIsUpdatableBaseModel = (WhenIsUpdatableBaseModel) this;

    WorkflowedModel workflowedModel = getWorkflowedModel(baseModel);

    List<Integer> originalStatuses = new ArrayList<>();

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    serviceContext.setWorkflowAction(WorkflowConstants.ACTION_SAVE_DRAFT);

    baseModel = whenIsUpdatableBaseModel.updateBaseModel((Long) baseModel.getPrimaryKeyObj(), serviceContext);

    WhenHasParent whenHasParent = (WhenHasParent) this;

    workflowedModel = getWorkflowedModel(baseModel);

    originalStatuses.add(workflowedModel.getStatus());

    whenHasParent.moveParentBaseModelToTrash((Long) parentBaseModel.getPrimaryKeyObj());

    WhenIsMoveableFromTrashBaseModel whenIsMoveableFromTrashBaseModel = (WhenIsMoveableFromTrashBaseModel) this;

    whenIsMoveableFromTrashBaseModel.moveBaseModelFromTrash(baseModel, group, serviceContext);

    WhenIsAssetableBaseModel whenIsAssetableModel = (WhenIsAssetableBaseModel) this;

    baseModel = getBaseModel((Long) baseModel.getPrimaryKeyObj());

    Assert.assertTrue(whenIsAssetableModel.isAssetEntryVisible(baseModel, getAssetClassPK(baseModel)));
}