001
014
015 package com.liferay.portal.repository.liferayrepository;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.DocumentRepository;
019 import com.liferay.portal.kernel.repository.LocalRepository;
020 import com.liferay.portal.kernel.repository.Repository;
021 import com.liferay.portal.kernel.repository.RepositoryFactory;
022 import com.liferay.portal.kernel.repository.capabilities.BulkOperationCapability;
023 import com.liferay.portal.kernel.repository.capabilities.CommentCapability;
024 import com.liferay.portal.kernel.repository.capabilities.ProcessorCapability;
025 import com.liferay.portal.kernel.repository.capabilities.RelatedModelCapability;
026 import com.liferay.portal.kernel.repository.capabilities.SyncCapability;
027 import com.liferay.portal.kernel.repository.capabilities.ThumbnailCapability;
028 import com.liferay.portal.kernel.repository.capabilities.TrashCapability;
029 import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability;
030 import com.liferay.portal.kernel.repository.model.FileContentReference;
031 import com.liferay.portal.kernel.repository.model.ModelValidator;
032 import com.liferay.portal.kernel.repository.registry.BaseRepositoryDefiner;
033 import com.liferay.portal.kernel.repository.registry.CapabilityRegistry;
034 import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
035 import com.liferay.portal.kernel.repository.util.ModelValidatorUtil;
036 import com.liferay.portal.repository.capabilities.LiferayBulkOperationCapability;
037 import com.liferay.portal.repository.capabilities.LiferayCommentCapability;
038 import com.liferay.portal.repository.capabilities.LiferayProcessorCapability;
039 import com.liferay.portal.repository.capabilities.LiferayRelatedModelCapability;
040 import com.liferay.portal.repository.capabilities.LiferaySyncCapability;
041 import com.liferay.portal.repository.capabilities.LiferayThumbnailCapability;
042 import com.liferay.portal.repository.capabilities.LiferayTrashCapability;
043 import com.liferay.portal.repository.capabilities.LiferayWorkflowCapability;
044 import com.liferay.portal.repository.capabilities.util.DLAppServiceAdapter;
045 import com.liferay.portal.repository.capabilities.util.DLFileEntryServiceAdapter;
046 import com.liferay.portal.repository.capabilities.util.DLFileVersionServiceAdapter;
047 import com.liferay.portal.repository.capabilities.util.DLFolderServiceAdapter;
048 import com.liferay.portal.repository.capabilities.util.GroupServiceAdapter;
049 import com.liferay.portal.repository.capabilities.util.RepositoryEntryChecker;
050 import com.liferay.portal.repository.capabilities.util.RepositoryEntryConverter;
051 import com.liferay.portal.repository.capabilities.util.RepositoryServiceAdapter;
052 import com.liferay.portal.util.PropsValues;
053 import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalServiceUtil;
054 import com.liferay.portlet.documentlibrary.service.DLSyncEventLocalServiceUtil;
055 import com.liferay.portlet.trash.service.TrashEntryLocalServiceUtil;
056 import com.liferay.portlet.trash.service.TrashVersionLocalServiceUtil;
057
058
061 public class LiferayRepositoryDefiner extends BaseRepositoryDefiner {
062
063 public static final String CLASS_NAME = LiferayRepository.class.getName();
064
065 @Override
066 public String getClassName() {
067 return CLASS_NAME;
068 }
069
070 @Override
071 public boolean isExternalRepository() {
072 return false;
073 }
074
075 @Override
076 public void registerCapabilities(
077 CapabilityRegistry<DocumentRepository> capabilityRegistry) {
078
079 DocumentRepository documentRepository = capabilityRegistry.getTarget();
080
081 DLFileEntryServiceAdapter dlFileEntryServiceAdapter =
082 DLFileEntryServiceAdapter.create(documentRepository);
083 DLFolderServiceAdapter dlFolderServiceAdapter =
084 DLFolderServiceAdapter.create(documentRepository);
085
086 BulkOperationCapability bulkOperationCapability =
087 new LiferayBulkOperationCapability(
088 documentRepository, dlFileEntryServiceAdapter,
089 dlFolderServiceAdapter);
090
091 capabilityRegistry.addExportedCapability(
092 BulkOperationCapability.class, bulkOperationCapability);
093
094 RepositoryEntryConverter repositoryEntryConverter =
095 new RepositoryEntryConverter();
096 RepositoryEntryChecker repositoryEntryChecker =
097 new RepositoryEntryChecker(documentRepository);
098
099 capabilityRegistry.addExportedCapability(
100 RelatedModelCapability.class,
101 new LiferayRelatedModelCapability(
102 repositoryEntryConverter, repositoryEntryChecker));
103 capabilityRegistry.addExportedCapability(
104 ThumbnailCapability.class,
105 new LiferayThumbnailCapability(
106 repositoryEntryConverter, repositoryEntryChecker));
107
108 TrashCapability trashCapability = new LiferayTrashCapability(
109 DLAppHelperLocalServiceUtil.getService(),
110 DLAppServiceAdapter.create(documentRepository),
111 dlFileEntryServiceAdapter, dlFolderServiceAdapter,
112 RepositoryServiceAdapter.create(documentRepository),
113 TrashEntryLocalServiceUtil.getService(),
114 TrashVersionLocalServiceUtil.getService());
115
116 capabilityRegistry.addExportedCapability(
117 TrashCapability.class, trashCapability);
118
119 capabilityRegistry.addExportedCapability(
120 WorkflowCapability.class,
121 new LiferayWorkflowCapability(
122 dlFileEntryServiceAdapter,
123 DLFileVersionServiceAdapter.create(documentRepository)));
124
125 if (PropsValues.DL_FILE_ENTRY_COMMENTS_ENABLED) {
126 capabilityRegistry.addSupportedCapability(
127 CommentCapability.class, _commentCapability);
128 }
129
130 capabilityRegistry.addSupportedCapability(
131 ProcessorCapability.class, _processorCapability);
132 capabilityRegistry.addSupportedCapability(
133 SyncCapability.class,
134 new LiferaySyncCapability(
135 GroupServiceAdapter.create(documentRepository),
136 DLSyncEventLocalServiceUtil.getService()));
137 }
138
139 @Override
140 public void registerRepositoryFactory(
141 RepositoryFactoryRegistry repositoryFactoryRegistry) {
142
143 repositoryFactoryRegistry.setRepositoryFactory(_repositoryFactory);
144 }
145
146 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
147 _repositoryFactory = new LiferayRepositoryFactoryWrapper(
148 repositoryFactory);
149 }
150
151 private final CommentCapability _commentCapability =
152 new LiferayCommentCapability();
153 private final ProcessorCapability _processorCapability =
154 new LiferayProcessorCapability();
155 private RepositoryFactory _repositoryFactory;
156
157 private class LiferayRepositoryFactoryWrapper implements RepositoryFactory {
158
159 public LiferayRepositoryFactoryWrapper(
160 RepositoryFactory repositoryFactory) {
161
162 _repositoryFactory = repositoryFactory;
163 }
164
165 @Override
166 public LocalRepository createLocalRepository(long repositoryId)
167 throws PortalException {
168
169 LocalRepository localRepository =
170 _repositoryFactory.createLocalRepository(repositoryId);
171
172 ModelValidator<FileContentReference> modelValidator =
173 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
174
175 return new ModelValidatorLocalRepositoryWrapper(
176 localRepository, modelValidator);
177 }
178
179 @Override
180 public Repository createRepository(long repositoryId)
181 throws PortalException {
182
183 Repository repository = _repositoryFactory.createRepository(
184 repositoryId);
185
186 ModelValidator<FileContentReference> modelValidator =
187 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
188
189 return new ModelValidatorRepositoryWrapper(
190 repository, modelValidator);
191 }
192
193 private final RepositoryFactory _repositoryFactory;
194
195 }
196
197 }