001
014
015 package com.liferay.portal.repository.external;
016
017 import com.liferay.portal.kernel.exception.SystemException;
018 import com.liferay.portal.kernel.repository.BaseRepository;
019 import com.liferay.portal.kernel.repository.DocumentRepository;
020 import com.liferay.portal.kernel.repository.RepositoryConfiguration;
021 import com.liferay.portal.kernel.repository.RepositoryConfigurationBuilder;
022 import com.liferay.portal.kernel.repository.RepositoryFactory;
023 import com.liferay.portal.kernel.repository.capabilities.ProcessorCapability;
024 import com.liferay.portal.kernel.repository.registry.BaseRepositoryDefiner;
025 import com.liferay.portal.kernel.repository.registry.CapabilityRegistry;
026 import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
027 import com.liferay.portal.repository.capabilities.LiferayProcessorCapability;
028 import com.liferay.portal.repository.util.ExternalRepositoryFactoryUtil;
029
030
033 public class LegacyExternalRepositoryDefiner extends BaseRepositoryDefiner {
034
035 public LegacyExternalRepositoryDefiner(
036 String className, RepositoryFactory repositoryFactory) {
037
038 _className = className;
039 _repositoryFactory = repositoryFactory;
040 }
041
042 @Override
043 public String getClassName() {
044 return _className;
045 }
046
047 @Override
048 public RepositoryConfiguration getRepositoryConfiguration() {
049 try {
050 if (_repositoryConfiguration != null) {
051 return _repositoryConfiguration;
052 }
053
054 BaseRepository baseRepository =
055 ExternalRepositoryFactoryUtil.getInstance(getClassName());
056
057 @SuppressWarnings("deprecation")
058 String[][] supportedParameters =
059 baseRepository.getSupportedParameters();
060
061 int size = 0;
062
063 if ((supportedParameters != null) &&
064 (supportedParameters[0] != null)) {
065
066 size = supportedParameters[0].length;
067 }
068
069 RepositoryConfigurationBuilder repositoryConfigurationBuilder =
070 new RepositoryConfigurationBuilder();
071
072 for (int i = 0; i < size; i++) {
073 repositoryConfigurationBuilder.addParameter(
074 supportedParameters[0][i]);
075 }
076
077 _repositoryConfiguration = repositoryConfigurationBuilder.build();
078
079 return _repositoryConfiguration;
080 }
081 catch (Exception e) {
082 throw new SystemException(e);
083 }
084 }
085
086 @Override
087 public boolean isExternalRepository() {
088 return true;
089 }
090
091 @Override
092 public void registerCapabilities(
093 CapabilityRegistry<DocumentRepository> capabilityRegistry) {
094
095 capabilityRegistry.addSupportedCapability(
096 ProcessorCapability.class, _processorCapability);
097 }
098
099 @Override
100 public void registerRepositoryFactory(
101 RepositoryFactoryRegistry repositoryFactoryRegistry) {
102
103 repositoryFactoryRegistry.setRepositoryFactory(_repositoryFactory);
104 }
105
106 private final String _className;
107 private final LiferayProcessorCapability _processorCapability =
108 new LiferayProcessorCapability();
109 private RepositoryConfiguration _repositoryConfiguration;
110 private final RepositoryFactory _repositoryFactory;
111
112 }