/*
* (C) Copyright 2015 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.configreader;
import java.util.Map;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import biz.netcentric.cq.tools.actool.configmodel.AcConfiguration;
import biz.netcentric.cq.tools.actool.history.AcInstallationLog;
import biz.netcentric.cq.tools.actool.validators.exceptions.AcConfigBeanValidationException;
public interface ConfigurationMerger {
/** Method that merges several textual AccessControlConfigurations written in YAML format, each comprising of a groups and ACE
* configuration. Validation ensures that no doubled defined groups and only valid section identifiers in configuration files are
* possible
*
* @param newestConfigurations map which contains all paths and configuration in YAML format. key is the node path in CRX under which
* the respective configuration is stored, entry is the textual configuration
* @param installationLog
* @return The AcConfiguration
* @throws RepositoryException in case some repository error has occurred
* @throws AcConfigBeanValidationException in case the given configuration is invalid */
public abstract AcConfiguration getMergedConfigurations(
final Map<String, String> newestConfigurations,
final AcInstallationLog installationLog,
final ConfigReader configReader, Session session) throws RepositoryException,
AcConfigBeanValidationException;
}