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.RepositoryEntryChecker;
045 import com.liferay.portal.repository.capabilities.util.RepositoryEntryConverter;
046 import com.liferay.portal.util.PropsValues;
047
048
051 public class LiferayRepositoryDefiner extends BaseRepositoryDefiner {
052
053 public static final String CLASS_NAME = LiferayRepository.class.getName();
054
055 @Override
056 public String getClassName() {
057 return CLASS_NAME;
058 }
059
060 @Override
061 public boolean isExternalRepository() {
062 return false;
063 }
064
065 @Override
066 public void registerCapabilities(
067 CapabilityRegistry<DocumentRepository> capabilityRegistry) {
068
069 capabilityRegistry.addExportedCapability(
070 TrashCapability.class, _trashCapability);
071
072 DocumentRepository documentRepository = capabilityRegistry.getTarget();
073
074 BulkOperationCapability bulkOperationCapability =
075 new LiferayBulkOperationCapability(documentRepository);
076
077 capabilityRegistry.addExportedCapability(
078 BulkOperationCapability.class, bulkOperationCapability);
079
080 RepositoryEntryConverter repositoryEntryConverter =
081 new RepositoryEntryConverter();
082 RepositoryEntryChecker repositoryEntryChecker =
083 new RepositoryEntryChecker(documentRepository);
084
085 capabilityRegistry.addExportedCapability(
086 RelatedModelCapability.class,
087 new LiferayRelatedModelCapability(
088 repositoryEntryConverter, repositoryEntryChecker));
089 capabilityRegistry.addExportedCapability(
090 ThumbnailCapability.class,
091 new LiferayThumbnailCapability(
092 repositoryEntryConverter, repositoryEntryChecker));
093
094 capabilityRegistry.addExportedCapability(
095 WorkflowCapability.class, _workflowCapability);
096
097 if (PropsValues.DL_FILE_ENTRY_COMMENTS_ENABLED) {
098 capabilityRegistry.addSupportedCapability(
099 CommentCapability.class, _commentCapability);
100 }
101
102 capabilityRegistry.addSupportedCapability(
103 ProcessorCapability.class, _processorCapability);
104 capabilityRegistry.addSupportedCapability(
105 SyncCapability.class,
106 new LiferaySyncCapability(bulkOperationCapability));
107 }
108
109 @Override
110 public void registerRepositoryFactory(
111 RepositoryFactoryRegistry repositoryFactoryRegistry) {
112
113 repositoryFactoryRegistry.setRepositoryFactory(_repositoryFactory);
114 }
115
116 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
117 _repositoryFactory = new LiferayRepositoryFactoryWrapper(
118 repositoryFactory);
119 }
120
121 private final CommentCapability _commentCapability =
122 new LiferayCommentCapability();
123 private final ProcessorCapability _processorCapability =
124 new LiferayProcessorCapability();
125 private RepositoryFactory _repositoryFactory;
126 private final TrashCapability _trashCapability =
127 new LiferayTrashCapability();
128 private final WorkflowCapability _workflowCapability =
129 new LiferayWorkflowCapability();
130
131 private class LiferayRepositoryFactoryWrapper implements RepositoryFactory {
132
133 public LiferayRepositoryFactoryWrapper(
134 RepositoryFactory repositoryFactory) {
135
136 _repositoryFactory = repositoryFactory;
137 }
138
139 @Override
140 public LocalRepository createLocalRepository(long repositoryId)
141 throws PortalException {
142
143 LocalRepository localRepository =
144 _repositoryFactory.createLocalRepository(repositoryId);
145
146 ModelValidator<FileContentReference> modelValidator =
147 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
148
149 return new ModelValidatorLocalRepositoryWrapper(
150 localRepository, modelValidator);
151 }
152
153 @Override
154 public Repository createRepository(long repositoryId)
155 throws PortalException {
156
157 Repository repository = _repositoryFactory.createRepository(
158 repositoryId);
159
160 ModelValidator<FileContentReference> modelValidator =
161 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
162
163 return new ModelValidatorRepositoryWrapper(
164 repository, modelValidator);
165 }
166
167 private final RepositoryFactory _repositoryFactory;
168
169 }
170
171 }