/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.repository.capabilities; import com.liferay.document.library.kernel.service.DLAppHelperLocalService; import com.liferay.document.library.kernel.service.DLSyncEventLocalService; import com.liferay.portal.kernel.bean.BeanReference; import com.liferay.portal.kernel.repository.DocumentRepository; import com.liferay.portal.kernel.repository.capabilities.BulkOperationCapability; import com.liferay.portal.kernel.repository.capabilities.CommentCapability; import com.liferay.portal.kernel.repository.capabilities.ConfigurationCapability; import com.liferay.portal.kernel.repository.capabilities.PortalCapabilityLocator; import com.liferay.portal.kernel.repository.capabilities.ProcessorCapability; import com.liferay.portal.kernel.repository.capabilities.RelatedModelCapability; import com.liferay.portal.kernel.repository.capabilities.SyncCapability; import com.liferay.portal.kernel.repository.capabilities.TemporaryFileEntriesCapability; import com.liferay.portal.kernel.repository.capabilities.ThumbnailCapability; import com.liferay.portal.kernel.repository.capabilities.TrashCapability; import com.liferay.portal.kernel.repository.capabilities.WorkflowCapability; import com.liferay.portal.repository.capabilities.util.DLAppServiceAdapter; import com.liferay.portal.repository.capabilities.util.DLFileEntryServiceAdapter; import com.liferay.portal.repository.capabilities.util.DLFileVersionServiceAdapter; import com.liferay.portal.repository.capabilities.util.DLFolderServiceAdapter; import com.liferay.portal.repository.capabilities.util.GroupServiceAdapter; import com.liferay.portal.repository.capabilities.util.RepositoryEntryChecker; import com.liferay.portal.repository.capabilities.util.RepositoryEntryConverter; import com.liferay.portal.repository.capabilities.util.RepositoryServiceAdapter; import com.liferay.trash.kernel.service.TrashEntryLocalService; import com.liferay.trash.kernel.service.TrashVersionLocalService; /** * @author Adolfo PĂ©rez */ public class PortalCapabilityLocatorImpl implements PortalCapabilityLocator { @Override public BulkOperationCapability getBulkOperationCapability( DocumentRepository documentRepository) { return new LiferayBulkOperationCapability( documentRepository, DLFileEntryServiceAdapter.create(documentRepository), DLFolderServiceAdapter.create(documentRepository)); } @Override public CommentCapability getCommentCapability( DocumentRepository documentRepository) { return _commentCapability; } @Override public ConfigurationCapability getConfigurationCapability( DocumentRepository documentRepository) { return new ConfigurationCapabilityImpl( documentRepository, RepositoryServiceAdapter.create(documentRepository)); } @Override public ProcessorCapability getProcessorCapability( DocumentRepository documentRepository) { return _processorCapability; } @Override public RelatedModelCapability getRelatedModelCapability( DocumentRepository documentRepository) { RepositoryEntryChecker repositoryEntryChecker = new RepositoryEntryChecker(documentRepository); return new LiferayRelatedModelCapability( _repositoryEntryConverter, repositoryEntryChecker); } @Override public SyncCapability getSyncCapability( DocumentRepository documentRepository) { return new LiferaySyncCapability( GroupServiceAdapter.create(documentRepository), dlSyncEventLocalService); } @Override public TemporaryFileEntriesCapability getTemporaryFileEntriesCapability( DocumentRepository documentRepository) { return new TemporaryFileEntriesCapabilityImpl(documentRepository); } @Override public ThumbnailCapability getThumbnailCapability( DocumentRepository documentRepository) { RepositoryEntryChecker repositoryEntryChecker = new RepositoryEntryChecker(documentRepository); return new LiferayThumbnailCapability( _repositoryEntryConverter, repositoryEntryChecker); } @Override public TrashCapability getTrashCapability( DocumentRepository documentRepository) { return new LiferayTrashCapability( dlAppHelperLocalService, DLAppServiceAdapter.create(documentRepository), DLFileEntryServiceAdapter.create(documentRepository), DLFolderServiceAdapter.create(documentRepository), RepositoryServiceAdapter.create(documentRepository), trashEntryLocalService, trashVersionLocalService); } @Override public WorkflowCapability getWorkflowCapability( DocumentRepository documentRepository, WorkflowCapability.OperationMode operationMode) { if (operationMode == WorkflowCapability.OperationMode.MINIMAL) { return new MinimalWorkflowCapability( DLFileEntryServiceAdapter.create(documentRepository)); } return new LiferayWorkflowCapability( DLFileEntryServiceAdapter.create(documentRepository), DLFileVersionServiceAdapter.create(documentRepository)); } @BeanReference(type = DLAppHelperLocalService.class) protected DLAppHelperLocalService dlAppHelperLocalService; @BeanReference(type = DLSyncEventLocalService.class) protected DLSyncEventLocalService dlSyncEventLocalService; @BeanReference(type = TrashEntryLocalService.class) protected TrashEntryLocalService trashEntryLocalService; @BeanReference(type = TrashVersionLocalService.class) protected TrashVersionLocalService trashVersionLocalService; private final CommentCapability _commentCapability = new LiferayCommentCapability(); private final ProcessorCapability _processorCapability = new LiferayProcessorCapability(); private final RepositoryEntryConverter _repositoryEntryConverter = new RepositoryEntryConverter(); }