001
014
015 package com.liferay.portal.repository.liferayrepository;
016
017 import com.liferay.document.library.kernel.service.DLAppHelperLocalServiceUtil;
018 import com.liferay.document.library.kernel.service.DLSyncEventLocalServiceUtil;
019 import com.liferay.portal.kernel.exception.PortalException;
020 import com.liferay.portal.kernel.repository.DocumentRepository;
021 import com.liferay.portal.kernel.repository.LocalRepository;
022 import com.liferay.portal.kernel.repository.Repository;
023 import com.liferay.portal.kernel.repository.RepositoryFactory;
024 import com.liferay.portal.kernel.repository.capabilities.BulkOperationCapability;
025 import com.liferay.portal.kernel.repository.capabilities.CommentCapability;
026 import com.liferay.portal.kernel.repository.capabilities.ProcessorCapability;
027 import com.liferay.portal.kernel.repository.capabilities.RelatedModelCapability;
028 import com.liferay.portal.kernel.repository.capabilities.SyncCapability;
029 import com.liferay.portal.kernel.repository.capabilities.ThumbnailCapability;
030 import com.liferay.portal.kernel.repository.capabilities.TrashCapability;
031 import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability;
032 import com.liferay.portal.kernel.repository.model.FileContentReference;
033 import com.liferay.portal.kernel.repository.model.ModelValidator;
034 import com.liferay.portal.kernel.repository.registry.BaseRepositoryDefiner;
035 import com.liferay.portal.kernel.repository.registry.CapabilityRegistry;
036 import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
037 import com.liferay.portal.kernel.repository.util.ModelValidatorUtil;
038 import com.liferay.portal.repository.capabilities.LiferayBulkOperationCapability;
039 import com.liferay.portal.repository.capabilities.LiferayCommentCapability;
040 import com.liferay.portal.repository.capabilities.LiferayProcessorCapability;
041 import com.liferay.portal.repository.capabilities.LiferayRelatedModelCapability;
042 import com.liferay.portal.repository.capabilities.LiferaySyncCapability;
043 import com.liferay.portal.repository.capabilities.LiferayThumbnailCapability;
044 import com.liferay.portal.repository.capabilities.LiferayTrashCapability;
045 import com.liferay.portal.repository.capabilities.LiferayWorkflowCapability;
046 import com.liferay.portal.repository.capabilities.util.DLAppServiceAdapter;
047 import com.liferay.portal.repository.capabilities.util.DLFileEntryServiceAdapter;
048 import com.liferay.portal.repository.capabilities.util.DLFileVersionServiceAdapter;
049 import com.liferay.portal.repository.capabilities.util.DLFolderServiceAdapter;
050 import com.liferay.portal.repository.capabilities.util.GroupServiceAdapter;
051 import com.liferay.portal.repository.capabilities.util.RepositoryEntryChecker;
052 import com.liferay.portal.repository.capabilities.util.RepositoryEntryConverter;
053 import com.liferay.portal.repository.capabilities.util.RepositoryServiceAdapter;
054 import com.liferay.portal.util.PropsValues;
055 import com.liferay.trash.kernel.service.TrashEntryLocalServiceUtil;
056 import com.liferay.trash.kernel.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 static class LiferayRepositoryFactoryWrapper
158 implements RepositoryFactory {
159
160 public LiferayRepositoryFactoryWrapper(
161 RepositoryFactory repositoryFactory) {
162
163 _repositoryFactory = repositoryFactory;
164 }
165
166 @Override
167 public LocalRepository createLocalRepository(long repositoryId)
168 throws PortalException {
169
170 LocalRepository localRepository =
171 _repositoryFactory.createLocalRepository(repositoryId);
172
173 ModelValidator<FileContentReference> modelValidator =
174 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
175
176 return new ModelValidatorLocalRepositoryWrapper(
177 localRepository, modelValidator);
178 }
179
180 @Override
181 public Repository createRepository(long repositoryId)
182 throws PortalException {
183
184 Repository repository = _repositoryFactory.createRepository(
185 repositoryId);
186
187 ModelValidator<FileContentReference> modelValidator =
188 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
189
190 return new ModelValidatorRepositoryWrapper(
191 repository, modelValidator);
192 }
193
194 private final RepositoryFactory _repositoryFactory;
195
196 }
197
198 }