001
014
015 package com.liferay.portal.repository.capabilities;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.repository.DocumentRepository;
020 import com.liferay.portal.kernel.repository.capabilities.Capability;
021 import com.liferay.portal.kernel.repository.capabilities.ConfigurationCapability;
022 import com.liferay.portal.kernel.util.StringPool;
023 import com.liferay.portal.kernel.util.UnicodeProperties;
024 import com.liferay.portal.model.Repository;
025 import com.liferay.portal.repository.capabilities.util.RepositoryServiceAdapter;
026
027
030 public class ConfigurationCapabilityImpl implements ConfigurationCapability {
031
032 public ConfigurationCapabilityImpl(
033 DocumentRepository documentRepository,
034 RepositoryServiceAdapter repositoryServiceAdapter) {
035
036 _documentRepository = documentRepository;
037 _repositoryServiceAdapter = repositoryServiceAdapter;
038 }
039
040 @Override
041 public String getProperty(Class<? extends Capability> owner, String key) {
042 try {
043 Repository repository = _repositoryServiceAdapter.getRepository(
044 _documentRepository.getRepositoryId());
045
046 UnicodeProperties typeSettingsProperties =
047 repository.getTypeSettingsProperties();
048
049 return typeSettingsProperties.getProperty(
050 _getUniqueKey(owner, key));
051 }
052 catch (PortalException pe) {
053 throw new SystemException(
054 "Unable to read repository configuration property", pe);
055 }
056 }
057
058 @Override
059 public void setProperty(
060 Class<? extends Capability> owner, String key, String value) {
061
062 try {
063 Repository repository = _repositoryServiceAdapter.getRepository(
064 _documentRepository.getRepositoryId());
065
066 UnicodeProperties typeSettingsProperties =
067 repository.getTypeSettingsProperties();
068
069 typeSettingsProperties.setProperty(
070 _getUniqueKey(owner, key), value);
071
072 repository.setTypeSettingsProperties(typeSettingsProperties);
073
074 _repositoryServiceAdapter.updateRepository(repository);
075 }
076 catch (PortalException pe) {
077 throw new SystemException(
078 "Unable to set repository configuration property", pe);
079 }
080 }
081
082 private String _getUniqueKey(
083 Class<? extends Capability> owner, String key) {
084
085 Class<?> clazz = owner.getClass();
086
087 return clazz.getName() + StringPool.POUND + key;
088 }
089
090 private final DocumentRepository _documentRepository;
091 private final RepositoryServiceAdapter _repositoryServiceAdapter;
092
093 }