001
014
015 package com.liferay.portal.repository.capabilities;
016
017 import com.liferay.document.library.kernel.model.DLFileEntry;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.repository.LocalRepository;
020 import com.liferay.portal.kernel.repository.Repository;
021 import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability;
022 import com.liferay.portal.kernel.repository.model.FileEntry;
023 import com.liferay.portal.kernel.repository.model.FileVersion;
024 import com.liferay.portal.kernel.service.ServiceContext;
025 import com.liferay.portal.kernel.workflow.WorkflowConstants;
026 import com.liferay.portal.repository.capabilities.util.DLFileEntryServiceAdapter;
027 import com.liferay.portal.repository.liferayrepository.LiferayWorkflowLocalRepositoryWrapper;
028 import com.liferay.portal.repository.liferayrepository.LiferayWorkflowRepositoryWrapper;
029 import com.liferay.portal.repository.util.RepositoryWrapperAware;
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, boolean majorVersion,
059 ServiceContext serviceContext)
060 throws PortalException {
061
062 doUpdateStatus(userId, fileEntry, serviceContext);
063 }
064
065 @Override
066 public int getStatus(FileEntry fileEntry) {
067 DLFileEntry dlFileEntry = (DLFileEntry)fileEntry.getModel();
068
069 return dlFileEntry.getStatus();
070 }
071
072 @Override
073 public void revertFileEntry(
074 long userId, FileEntry fileEntry, ServiceContext serviceContext)
075 throws PortalException {
076
077 doUpdateStatus(userId, fileEntry, serviceContext);
078 }
079
080 @Override
081 public void updateFileEntry(
082 long userId, FileEntry fileEntry, boolean majorVersion,
083 ServiceContext serviceContext)
084 throws PortalException {
085
086 doUpdateStatus(userId, fileEntry, serviceContext);
087 }
088
089 @Override
090 public LocalRepository wrapLocalRepository(
091 LocalRepository localRepository) {
092
093 return new LiferayWorkflowLocalRepositoryWrapper(localRepository, this);
094 }
095
096 @Override
097 public Repository wrapRepository(Repository repository) {
098 return new LiferayWorkflowRepositoryWrapper(repository, this);
099 }
100
101 protected void doUpdateStatus(
102 long userId, FileEntry fileEntry, ServiceContext serviceContext)
103 throws PortalException {
104
105 Map<String, Serializable> workflowContext = Collections.emptyMap();
106
107 FileVersion fileVersion = fileEntry.getFileVersion();
108
109 _dlFileEntryServiceAdapter.updateStatus(
110 userId, fileVersion.getFileVersionId(),
111 WorkflowConstants.STATUS_APPROVED, serviceContext, workflowContext);
112 }
113
114 private final DLFileEntryServiceAdapter _dlFileEntryServiceAdapter;
115
116 }