001
014
015 package com.liferay.portal.repository.capabilities;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.LocalRepository;
019 import com.liferay.portal.kernel.repository.Repository;
020 import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability;
021 import com.liferay.portal.kernel.repository.model.FileEntry;
022 import com.liferay.portal.kernel.repository.model.FileVersion;
023 import com.liferay.portal.kernel.workflow.WorkflowConstants;
024 import com.liferay.portal.repository.capabilities.util.DLFileEntryServiceAdapter;
025 import com.liferay.portal.repository.liferayrepository.LiferayWorkflowLocalRepositoryWrapper;
026 import com.liferay.portal.repository.liferayrepository.LiferayWorkflowRepositoryWrapper;
027 import com.liferay.portal.repository.util.RepositoryWrapperAware;
028 import com.liferay.portal.service.ServiceContext;
029 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
030
031 import java.io.Serializable;
032
033 import java.util.Collections;
034 import java.util.Map;
035
036
039 public class MinimalWorkflowCapability
040 implements RepositoryWrapperAware, WorkflowCapability, WorkflowSupport {
041
042 public MinimalWorkflowCapability(
043 DLFileEntryServiceAdapter dlFileEntryServiceAdapter) {
044
045 _dlFileEntryServiceAdapter = dlFileEntryServiceAdapter;
046 }
047
048 @Override
049 public void addFileEntry(
050 long userId, FileEntry fileEntry, ServiceContext serviceContext)
051 throws PortalException {
052
053 doUpdateStatus(userId, fileEntry, serviceContext);
054 }
055
056 @Override
057 public void checkInFileEntry(
058 long userId, FileEntry fileEntry, ServiceContext serviceContext)
059 throws PortalException {
060
061 doUpdateStatus(userId, fileEntry, serviceContext);
062 }
063
064 @Override
065 public int getStatus(FileEntry fileEntry) {
066 DLFileEntry dlFileEntry = (DLFileEntry)fileEntry.getModel();
067
068 return dlFileEntry.getStatus();
069 }
070
071 @Override
072 public void revertFileEntry(
073 long userId, FileEntry fileEntry, ServiceContext serviceContext)
074 throws PortalException {
075
076 doUpdateStatus(userId, fileEntry, serviceContext);
077 }
078
079 @Override
080 public void updateFileEntry(
081 long userId, FileEntry fileEntry, ServiceContext serviceContext)
082 throws PortalException {
083
084 doUpdateStatus(userId, fileEntry, serviceContext);
085 }
086
087 @Override
088 public LocalRepository wrapLocalRepository(
089 LocalRepository localRepository) {
090
091 return new LiferayWorkflowLocalRepositoryWrapper(localRepository, this);
092 }
093
094 @Override
095 public Repository wrapRepository(Repository repository) {
096 return new LiferayWorkflowRepositoryWrapper(repository, this);
097 }
098
099 protected void doUpdateStatus(
100 long userId, FileEntry fileEntry, ServiceContext serviceContext)
101 throws PortalException {
102
103 Map<String, Serializable> workflowContext = Collections.emptyMap();
104
105 FileVersion fileVersion = fileEntry.getFileVersion();
106
107 _dlFileEntryServiceAdapter.updateStatus(
108 userId, fileVersion.getFileVersionId(),
109 WorkflowConstants.STATUS_APPROVED, serviceContext, workflowContext);
110 }
111
112 private final DLFileEntryServiceAdapter _dlFileEntryServiceAdapter;
113
114 }