/*
* Copyright (C) 2003-2009 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.services.wcm.category;
import javax.jcr.Node;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.services.cms.actions.ActionServiceContainer;
import org.exoplatform.services.cms.taxonomy.TaxonomyService;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.ext.common.SessionProvider;
import org.exoplatform.services.wcm.portal.artifacts.RemovePortalPlugin;
/**
* Created by The eXo Platform SAS
* Author : eXoPlatform
* chuong_phan@exoplatform.com, phan.le.thanh.chuong@gmail.com
* Aug 11, 2009
*/
public class RemoveTaxonomyPlugin extends RemovePortalPlugin {
/** The taxonomy service_. */
private TaxonomyService taxonomyService;
private ActionServiceContainer actionServiceContainer;
private RepositoryService repositoryService;
/**
* Instantiates a new initial taxonomy plugin.
*
* @param params the params
* @param configurationManager the configuration manager
* @param repositoryService the repository service
* @param taxonomyService the taxonomy service
* @param actionServiceContainer the action service container
*
* @throws Exception the exception
*/
public RemoveTaxonomyPlugin(InitParams params,
ConfigurationManager configurationManager,
RepositoryService repositoryService,
TaxonomyService taxonomyService,
ActionServiceContainer actionServiceContainer) throws Exception {
super(params, configurationManager, repositoryService);
this.repositoryService = repositoryService;
this.taxonomyService = taxonomyService;
this.actionServiceContainer = actionServiceContainer;
}
/*
* (non-Javadoc)
* @see
* org.exoplatform.services.wcm.portal.artifacts.BasePortalArtifactsPlugin
* #deployToPortal(java.lang.String,
* org.exoplatform.services.jcr.ext.common.SessionProvider)
*/
public void invalidateFromPortal(SessionProvider sessionProvider, String portalName) throws Exception {
String repository = repositoryService.getCurrentRepository().getConfiguration().getName();
if (taxonomyService.hasTaxonomyTree(portalName)) {
Node taxonomyTreeNode = taxonomyService.getTaxonomyTree(portalName, true);
if (taxonomyTreeNode!=null) {
actionServiceContainer.removeAction(taxonomyTreeNode, repository);
}
taxonomyService.removeTaxonomyTree(portalName);
}
}
}