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.SyncCapability;
024 import com.liferay.portal.kernel.repository.capabilities.TrashCapability;
025 import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability;
026 import com.liferay.portal.kernel.repository.model.FileContentReference;
027 import com.liferay.portal.kernel.repository.model.ModelValidator;
028 import com.liferay.portal.kernel.repository.registry.BaseRepositoryDefiner;
029 import com.liferay.portal.kernel.repository.registry.CapabilityRegistry;
030 import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
031 import com.liferay.portal.kernel.repository.util.ModelValidatorUtil;
032 import com.liferay.portal.repository.capabilities.LiferayBulkOperationCapability;
033 import com.liferay.portal.repository.capabilities.LiferaySyncCapability;
034 import com.liferay.portal.repository.capabilities.LiferayTrashCapability;
035 import com.liferay.portal.repository.capabilities.LiferayWorkflowCapability;
036
037
040 public class LiferayRepositoryDefiner extends BaseRepositoryDefiner {
041
042 @Override
043 public String getClassName() {
044 return LiferayRepository.class.getName();
045 }
046
047 @Override
048 public boolean isExternalRepository() {
049 return false;
050 }
051
052 @Override
053 public void registerCapabilities(CapabilityRegistry capabilityRegistry) {
054 capabilityRegistry.addExportedCapability(
055 TrashCapability.class, _liferayTrashCapability);
056
057 DocumentRepository documentRepository =
058 capabilityRegistry.getDocumentRepository();
059
060 BulkOperationCapability bulkOperationCapability =
061 new LiferayBulkOperationCapability(
062 documentRepository.getRepositoryId());
063
064 capabilityRegistry.addExportedCapability(
065 BulkOperationCapability.class, bulkOperationCapability);
066
067 capabilityRegistry.addSupportedCapability(
068 SyncCapability.class,
069 new LiferaySyncCapability(bulkOperationCapability));
070 capabilityRegistry.addSupportedCapability(
071 WorkflowCapability.class, _liferayWorkflowCapability);
072 }
073
074 @Override
075 public void registerRepositoryFactory(
076 RepositoryFactoryRegistry repositoryFactoryRegistry) {
077
078 repositoryFactoryRegistry.setRepositoryFactory(_repositoryFactory);
079 }
080
081 public void setRepositoryFactory(RepositoryFactory repositoryFactory) {
082 _repositoryFactory = new LiferayRepositoryFactoryWrapper(
083 repositoryFactory);
084 }
085
086 private final LiferayTrashCapability _liferayTrashCapability =
087 new LiferayTrashCapability();
088 private final LiferayWorkflowCapability _liferayWorkflowCapability =
089 new LiferayWorkflowCapability();
090 private RepositoryFactory _repositoryFactory;
091
092 private class LiferayRepositoryFactoryWrapper implements RepositoryFactory {
093
094 public LiferayRepositoryFactoryWrapper(
095 RepositoryFactory repositoryFactory) {
096
097 _repositoryFactory = repositoryFactory;
098 }
099
100 @Override
101 public LocalRepository createLocalRepository(long repositoryId)
102 throws PortalException {
103
104 LocalRepository localRepository =
105 _repositoryFactory.createLocalRepository(repositoryId);
106
107 ModelValidator<FileContentReference> modelValidator =
108 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
109
110 return new ModelValidatorLocalRepositoryWrapper(
111 localRepository, modelValidator);
112 }
113
114 @Override
115 public Repository createRepository(long repositoryId)
116 throws PortalException {
117
118 Repository repository = _repositoryFactory.createRepository(
119 repositoryId);
120
121 ModelValidator<FileContentReference> modelValidator =
122 ModelValidatorUtil.getDefaultDLFileEntryModelValidator();
123
124 return new ModelValidatorRepositoryWrapper(
125 repository, modelValidator);
126 }
127
128 private final RepositoryFactory _repositoryFactory;
129
130 }
131
132 }