Example usage for com.liferay.portal.kernel.service ServiceContext getWorkflowAction

List of usage examples for com.liferay.portal.kernel.service ServiceContext getWorkflowAction

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.service ServiceContext getWorkflowAction.

Prototype

public int getWorkflowAction() 

Source Link

Document

Returns the workflow action to take if this service context is being passed as a parameter to a method that processes a workflow action.

Usage

From source file:com.liferay.bookmarks.trash.test.BookmarksEntryTrashHandlerTest.java

License:Open Source License

@Override
public BaseModel<?> updateBaseModel(long primaryKey, ServiceContext serviceContext) throws Exception {

    BookmarksEntry entry = BookmarksEntryLocalServiceUtil.getEntry(primaryKey);

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT) {

        entry = BookmarksEntryLocalServiceUtil.updateStatus(TestPropsValues.getUserId(), entry,
                WorkflowConstants.STATUS_DRAFT);
    }/*  ww w  .  j  a  va 2  s. com*/

    return entry;
}

From source file:com.liferay.bookmarks.trash.test.BookmarksFolderTrashHandlerTest.java

License:Open Source License

@Override
public BaseModel<?> updateBaseModel(long primaryKey, ServiceContext serviceContext) throws Exception {

    BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(primaryKey);

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT) {

        folder = BookmarksFolderLocalServiceUtil.updateStatus(TestPropsValues.getUserId(), folder,
                WorkflowConstants.STATUS_DRAFT);
    }/*from   ww  w .j  a  v a  2  s.com*/

    return folder;
}

From source file:com.liferay.document.library.internal.repository.capabilities.LiferayWorkflowCapability.java

License:Open Source License

@Override
public void checkInFileEntry(long userId, FileEntry fileEntry, boolean majorVersion,
        ServiceContext serviceContext) throws PortalException {

    boolean keepFileVersionLabel = _dlFileEntryServiceAdapter.isKeepFileVersionLabel(fileEntry.getFileEntryId(),
            majorVersion, serviceContext);

    if ((serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH) && !keepFileVersionLabel) {

        DLFileVersion latestDLFileVersion = _dlFileVersionServiceAdapter
                .getLatestFileVersion(fileEntry.getFileEntryId(), false);

        DLUtil.startWorkflowInstance(userId, latestDLFileVersion, DLSyncConstants.EVENT_UPDATE, serviceContext);
    }/* w  w  w .  j  a  v a  2s . c  om*/
}

From source file:com.liferay.document.library.internal.repository.capabilities.LiferayWorkflowCapability.java

License:Open Source License

private DLFileVersion _getWorkflowDLFileVersion(long fileEntryId, ServiceContext serviceContext)
        throws PortalException {

    DLFileEntry dlFileEntry = _dlFileEntryServiceAdapter.getDLFileEntry(fileEntryId);

    if (dlFileEntry.isCheckedOut()) {
        return null;
    }/* w  w w .j a va 2s .  c  om*/

    DLFileVersion dlFileVersion = _dlFileVersionServiceAdapter.getLatestFileVersion(fileEntryId, true);

    if (dlFileVersion.isApproved()
            || (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH)) {

        return dlFileVersion;
    }

    return null;
}

From source file:com.liferay.document.library.trash.test.DLFileShortcutTrashHandlerTest.java

License:Open Source License

@Override
public BaseModel<?> updateBaseModel(long primaryKey, ServiceContext serviceContext) throws Exception {

    DLFileShortcut dlFileShortcut = DLFileShortcutLocalServiceUtil.getFileShortcut(primaryKey);

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT) {

        DLFileShortcutLocalServiceUtil.updateStatus(TestPropsValues.getUserId(), primaryKey,
                WorkflowConstants.STATUS_DRAFT, serviceContext);
    }/* w ww.  j a v a2  s  . c o  m*/

    return dlFileShortcut;
}

From source file:com.liferay.document.library.trash.test.DLFolderTrashHandlerTest.java

License:Open Source License

@Override
public BaseModel<?> updateBaseModel(long primaryKey, ServiceContext serviceContext) throws Exception {

    DLFolder dlFolder = DLFolderLocalServiceUtil.getFolder(primaryKey);

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT) {

        dlFolder = DLFolderLocalServiceUtil.updateStatus(TestPropsValues.getUserId(), primaryKey,
                WorkflowConstants.STATUS_DRAFT, null, serviceContext);
    }//from w w  w  . j a v a2  s  .c  o  m

    return dlFolder;
}

From source file:com.liferay.dynamic.data.lists.service.impl.DDLRecordLocalServiceImpl.java

License:Open Source License

/**
 * Updates the record, replacing its display index and values.
 *
 * @param  userId the primary key of the user updating the record
 * @param  recordId the primary key of the record
 * @param  majorVersion whether this update is a major change. A major
 *         change increments the record's major version number.
 * @param  displayIndex the index position in which the record is displayed
 *         in the spreadsheet view/*from w w  w  . jav a  2  s. c o  m*/
 * @param  ddmFormValues the record values. See <code>DDMFormValues</code>
 *         in the <code>dynamic.data.mapping.api</code> module.
 * @param  serviceContext the service context to be applied. This can set
 *         the record modified date.
 * @return the record
 * @throws PortalException if a portal exception occurred
 */
@Indexable(type = IndexableType.REINDEX)
@Override
public DDLRecord updateRecord(long userId, long recordId, boolean majorVersion, int displayIndex,
        DDMFormValues ddmFormValues, ServiceContext serviceContext) throws PortalException {

    // Record

    User user = userLocalService.getUser(userId);

    DDLRecord record = ddlRecordPersistence.findByPrimaryKey(recordId);

    record.setModifiedDate(serviceContext.getModifiedDate(null));

    ddlRecordPersistence.update(record);

    // Record version

    DDLRecordVersion recordVersion = record.getLatestRecordVersion();

    if (recordVersion.isApproved()) {
        DDLRecordSet recordSet = record.getRecordSet();

        long ddmStorageId = storageEngine.create(recordSet.getCompanyId(), recordSet.getDDMStructureId(),
                ddmFormValues, serviceContext);

        String version = getNextVersion(recordVersion.getVersion(), majorVersion,
                serviceContext.getWorkflowAction());

        recordVersion = addRecordVersion(user, record, ddmStorageId, version, displayIndex,
                WorkflowConstants.STATUS_DRAFT);
    } else {
        storageEngine.update(recordVersion.getDDMStorageId(), ddmFormValues, serviceContext);

        String version = recordVersion.getVersion();

        updateRecordVersion(user, recordVersion, version, displayIndex, recordVersion.getStatus(),
                serviceContext);
    }

    if (isKeepRecordVersionLabel(record.getRecordVersion(), recordVersion, serviceContext)) {

        ddlRecordVersionPersistence.remove(recordVersion);

        // Dynamic data mapping storage

        storageEngine.deleteByClass(recordVersion.getDDMStorageId());

        return record;
    }

    // Workflow

    WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), record.getGroupId(), userId,
            DDLRecord.class.getName(), recordVersion.getRecordVersionId(), recordVersion, serviceContext);

    return record;
}

From source file:com.liferay.dynamic.data.lists.service.impl.DDLRecordLocalServiceImpl.java

License:Open Source License

/**
 * See <code>DLFileVersionPolicyImpl#isKeepFileVersionLabel</code> in the
 * <code>com.liferay.document.library.service</code> module.
 *///from w w  w  .  j  av  a  2  s  . c  o m
protected boolean isKeepRecordVersionLabel(DDLRecordVersion lastRecordVersion,
        DDLRecordVersion latestRecordVersion, ServiceContext serviceContext) throws PortalException {

    if (Objects.equals(serviceContext.getCommand(), Constants.REVERT)) {
        return false;
    }

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT) {

        return false;
    }

    if (Objects.equals(lastRecordVersion.getVersion(), latestRecordVersion.getVersion())) {

        return false;
    }

    DDMFormValues lastDDMFormValues = storageEngine.getDDMFormValues(lastRecordVersion.getDDMStorageId());
    DDMFormValues latestDDMFormValues = storageEngine.getDDMFormValues(latestRecordVersion.getDDMStorageId());

    if (!lastDDMFormValues.equals(latestDDMFormValues)) {
        return false;
    }

    ExpandoBridge lastExpandoBridge = lastRecordVersion.getExpandoBridge();
    ExpandoBridge latestExpandoBridge = latestRecordVersion.getExpandoBridge();

    Map<String, Serializable> lastAttributes = lastExpandoBridge.getAttributes();
    Map<String, Serializable> latestAttributes = latestExpandoBridge.getAttributes();

    if (!lastAttributes.equals(latestAttributes)) {
        return false;
    }

    return true;
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMFormInstanceRecordLocalServiceImpl.java

License:Open Source License

@Indexable(type = IndexableType.REINDEX)
@Override/*from  www. java 2s.  c  om*/
public DDMFormInstanceRecord addFormInstanceRecord(long userId, long groupId, long ddmFormInstanceId,
        DDMFormValues ddmFormValues, ServiceContext serviceContext) throws PortalException {

    User user = userLocalService.getUser(userId);

    DDMFormInstance ddmFormInstance = ddmFormInstancePersistence.findByPrimaryKey(ddmFormInstanceId);

    validate(groupId, ddmFormInstance);

    long recordId = counterLocalService.increment();

    DDMFormInstanceRecord ddmFormInstanceRecord = ddmFormInstanceRecordPersistence.create(recordId);

    ddmFormInstanceRecord.setUuid(serviceContext.getUuid());
    ddmFormInstanceRecord.setGroupId(groupId);
    ddmFormInstanceRecord.setCompanyId(user.getCompanyId());
    ddmFormInstanceRecord.setUserId(user.getUserId());
    ddmFormInstanceRecord.setUserName(user.getFullName());
    ddmFormInstanceRecord.setVersionUserId(user.getUserId());
    ddmFormInstanceRecord.setVersionUserName(user.getFullName());

    StorageEngine storageEngine = storageEngineAccessor.getStorageEngine();

    long ddmStorageId = storageEngine.create(ddmFormInstance.getCompanyId(), ddmFormInstance.getStructureId(),
            ddmFormValues, serviceContext);

    ddmFormInstanceRecord.setStorageId(ddmStorageId);

    ddmFormInstanceRecord.setFormInstanceId(ddmFormInstanceId);
    ddmFormInstanceRecord.setFormInstanceVersion(ddmFormInstance.getVersion());
    ddmFormInstanceRecord.setVersion(_VERSION_DEFAULT);

    ddmFormInstanceRecordPersistence.update(ddmFormInstanceRecord);

    int status = GetterUtil.getInteger(serviceContext.getAttribute("status"), WorkflowConstants.STATUS_DRAFT);

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = addFormInstanceRecordVersion(user,
            ddmFormInstanceRecord, ddmStorageId, status, _VERSION_DEFAULT);

    // Asset

    Locale locale = serviceContext.getLocale();

    updateAsset(userId, ddmFormInstanceRecord, ddmFormInstanceRecordVersion,
            serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), locale,
            serviceContext.getAssetPriority());

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH) {

        WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), groupId, userId,
                DDMFormInstanceRecord.class.getName(),
                ddmFormInstanceRecordVersion.getFormInstanceRecordVersionId(), ddmFormInstanceRecordVersion,
                serviceContext);
    }

    return ddmFormInstanceRecord;
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMFormInstanceRecordLocalServiceImpl.java

License:Open Source License

@Indexable(type = IndexableType.REINDEX)
@Override/*from   www . j  a v a  2 s  . c om*/
public DDMFormInstanceRecord updateFormInstanceRecord(long userId, long ddmFormInstanceRecordId,
        boolean majorVersion, DDMFormValues ddmFormValues, ServiceContext serviceContext)
        throws PortalException {

    User user = userLocalService.getUser(userId);

    DDMFormInstanceRecord ddmFormInstanceRecord = ddmFormInstanceRecordPersistence
            .findByPrimaryKey(ddmFormInstanceRecordId);

    ddmFormInstanceRecord.setModifiedDate(serviceContext.getModifiedDate(null));

    ddmFormInstanceRecord = ddmFormInstanceRecordPersistence.update(ddmFormInstanceRecord);

    StorageEngine storageEngine = storageEngineAccessor.getStorageEngine();

    DDMFormInstanceRecordVersion ddmFormInstanceRecordVersion = ddmFormInstanceRecord
            .getLatestFormInstanceRecordVersion();

    if (ddmFormInstanceRecordVersion.isApproved()) {
        DDMFormInstance ddmFormInstance = ddmFormInstanceRecord.getFormInstance();

        long ddmStorageId = storageEngine.create(ddmFormInstance.getCompanyId(),
                ddmFormInstance.getStructureId(), ddmFormValues, serviceContext);

        String version = getNextVersion(ddmFormInstanceRecordVersion.getVersion(), majorVersion,
                serviceContext.getWorkflowAction());

        ddmFormInstanceRecordVersion = addFormInstanceRecordVersion(user, ddmFormInstanceRecord, ddmStorageId,
                WorkflowConstants.STATUS_DRAFT, version);
    } else {
        storageEngine.update(ddmFormInstanceRecordVersion.getStorageId(), ddmFormValues, serviceContext);

        String version = ddmFormInstanceRecordVersion.getVersion();

        updateFormInstanceRecordVersion(user, ddmFormInstanceRecordVersion,
                ddmFormInstanceRecordVersion.getStatus(), version, serviceContext);
    }

    if (isKeepFormInstanceRecordVersionLabel(ddmFormInstanceRecord.getFormInstanceRecordVersion(),
            ddmFormInstanceRecordVersion, serviceContext)) {

        ddmFormInstanceRecordVersionPersistence.remove(ddmFormInstanceRecordVersion);

        storageEngine.deleteByClass(ddmFormInstanceRecordVersion.getStorageId());

        return ddmFormInstanceRecord;
    }

    if (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_PUBLISH) {

        WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(),
                ddmFormInstanceRecord.getGroupId(), userId, DDMFormInstanceRecord.class.getName(),
                ddmFormInstanceRecordVersion.getFormInstanceRecordVersionId(), ddmFormInstanceRecordVersion,
                serviceContext);
    }

    return ddmFormInstanceRecord;
}