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