/*
* (C) Copyright 2016 Netcentric AG.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package biz.netcentric.cq.tools.actool.aceinstaller;
import java.util.Map;
import java.util.Set;
import javax.jcr.Session;
import biz.netcentric.cq.tools.actool.configmodel.AceBean;
import biz.netcentric.cq.tools.actool.history.AcInstallationLog;
/** Installs AceBeans to content paths. */
public interface AceBeanInstaller {
/** Method which installs all ACE contained in the configurations. if an ACL is already existing in CRX the ACEs from the config get
* merged into the ACL (the ones from config overwrite the ones in CRX) ACEs belonging to groups which are not contained in any
* configuration don't get altered
*
* @param pathBasedAceMapFromConfig map containing the ACE data from the merged configurations path based
* @param session the jcr session
* @param installationLog the installation log
* @param authorizablesToRemoveAcesFor
* @param intermediateSaves whether the session should be saved after each path (for each ACL) */
void installPathBasedACEs(final Map<String, Set<AceBean>> pathBasedAceMapFromConfig, final Session session,
final AcInstallationLog installationLog, Set<String> authorizablesToRemoveAcesFor, boolean intermediateSaves) throws Exception;
}