001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
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.RepositoryFactory;
021    import com.liferay.portal.kernel.repository.capabilities.ProcessorCapability;
022    import com.liferay.portal.kernel.repository.registry.BaseRepositoryDefiner;
023    import com.liferay.portal.kernel.repository.registry.CapabilityRegistry;
024    import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
025    import com.liferay.portal.repository.capabilities.LiferayProcessorCapability;
026    import com.liferay.portal.repository.util.ExternalRepositoryFactoryUtil;
027    
028    /**
029     * @author Adolfo P??rez
030     */
031    public class LegacyExternalRepositoryDefiner extends BaseRepositoryDefiner {
032    
033            public LegacyExternalRepositoryDefiner(
034                    String className, RepositoryFactory repositoryFactory) {
035    
036                    _className = className;
037                    _repositoryFactory = repositoryFactory;
038            }
039    
040            @Override
041            public String getClassName() {
042                    return _className;
043            }
044    
045            @Deprecated
046            @Override
047            public String[] getSupportedConfigurations() {
048                    try {
049                            BaseRepository baseRepository =
050                                    ExternalRepositoryFactoryUtil.getInstance(getClassName());
051    
052                            return baseRepository.getSupportedConfigurations();
053                    }
054                    catch (Exception e) {
055                            throw new SystemException(e);
056                    }
057            }
058    
059            @Deprecated
060            @Override
061            public String[][] getSupportedParameters() {
062                    try {
063                            BaseRepository baseRepository =
064                                    ExternalRepositoryFactoryUtil.getInstance(getClassName());
065    
066                            return baseRepository.getSupportedParameters();
067                    }
068                    catch (Exception e) {
069                            throw new SystemException(e);
070                    }
071            }
072    
073            @Override
074            public boolean isExternalRepository() {
075                    return true;
076            }
077    
078            @Override
079            public void registerCapabilities(
080                    CapabilityRegistry<DocumentRepository> capabilityRegistry) {
081    
082                    capabilityRegistry.addSupportedCapability(
083                            ProcessorCapability.class, _processorCapability);
084            }
085    
086            @Override
087            public void registerRepositoryFactory(
088                    RepositoryFactoryRegistry repositoryFactoryRegistry) {
089    
090                    repositoryFactoryRegistry.setRepositoryFactory(_repositoryFactory);
091            }
092    
093            private final String _className;
094            private final LiferayProcessorCapability _processorCapability =
095                    new LiferayProcessorCapability();
096            private final RepositoryFactory _repositoryFactory;
097    
098    }