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.liferayrepository;
016    
017    import com.liferay.portal.kernel.repository.DocumentRepository;
018    import com.liferay.portal.kernel.repository.RepositoryFactory;
019    import com.liferay.portal.kernel.repository.capabilities.BulkOperationCapability;
020    import com.liferay.portal.kernel.repository.capabilities.SyncCapability;
021    import com.liferay.portal.kernel.repository.capabilities.TrashCapability;
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.RepositoryEventRegistry;
025    import com.liferay.portal.kernel.repository.registry.RepositoryFactoryRegistry;
026    import com.liferay.portal.repository.capabilities.LiferayBulkOperationCapability;
027    import com.liferay.portal.repository.capabilities.LiferaySyncCapability;
028    import com.liferay.portal.repository.capabilities.LiferayTrashCapability;
029    
030    /**
031     * @author Adolfo P??rez
032     */
033    public class LiferayRepositoryDefiner extends BaseRepositoryDefiner {
034    
035            @Override
036            public String getClassName() {
037                    return LiferayRepository.class.getName();
038            }
039    
040            @Override
041            public boolean isExternalRepository() {
042                    return false;
043            }
044    
045            @Override
046            public void registerCapabilities(CapabilityRegistry capabilityRegistry) {
047                    capabilityRegistry.addExportedCapability(
048                            TrashCapability.class, _liferayTrashCapability);
049    
050                    DocumentRepository documentRepository =
051                            capabilityRegistry.getDocumentRepository();
052    
053                    BulkOperationCapability bulkOperationCapability =
054                            new LiferayBulkOperationCapability(
055                                    documentRepository.getRepositoryId());
056    
057                    capabilityRegistry.addExportedCapability(
058                            BulkOperationCapability.class, bulkOperationCapability);
059    
060                    capabilityRegistry.addSupportedCapability(
061                            SyncCapability.class, _liferaySyncCapability);
062            }
063    
064            @Override
065            public void registerRepositoryEventListeners(
066                    RepositoryEventRegistry repositoryEventRegistry) {
067    
068                    _liferaySyncCapability.registerRepositoryEventListeners(
069                            repositoryEventRegistry);
070                    _liferayTrashCapability.registerRepositoryEventListeners(
071                            repositoryEventRegistry);
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 = repositoryFactory;
083            }
084    
085            private final LiferaySyncCapability _liferaySyncCapability =
086                    new LiferaySyncCapability();
087            private final LiferayTrashCapability _liferayTrashCapability =
088                    new LiferayTrashCapability();
089            private RepositoryFactory _repositoryFactory;
090    
091    }