All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.att.research.xacmlatt.pdp.policy.CombiningAlgorithm Maven / Gradle / Ivy

The newest version!
/*
 *
 *          Copyright (c) 2013,2019  AT&T Knowledge Ventures
 *                     SPDX-License-Identifier: MIT
 */
package com.att.research.xacmlatt.pdp.policy;

import java.util.List;

import com.att.research.xacml.api.Identifier;
import com.att.research.xacmlatt.pdp.eval.Evaluatable;
import com.att.research.xacmlatt.pdp.eval.EvaluationContext;
import com.att.research.xacmlatt.pdp.eval.EvaluationException;
import com.att.research.xacmlatt.pdp.eval.EvaluationResult;

/**
 * CombiningAlgorithm is the interface for objects that implement XACML combining algorithms for rules, policies, and policy sets.
 * 
 * @author car
 * @version $Revision: 1.1 $
 *
 * @param  the type of object to be combined
 */
public interface CombiningAlgorithm {
	/**
	 * Gets the {@link com.att.research.xacml.api.Identifier} for this CombiningAlgorithm.
	 * 
	 * @return the Identifier for this CombiningAlgorithm
	 */
	public Identifier getId();
	
	/**
	 * Evaluates as many of the CombiningElements supplied with the given CombinerParameters based on
	 * the particular combining algorithm and combines their EvaluationResults into a single EvaluationResult.
	 * 
	 * @param evaluationContext the EvaluationContext in which to evaluate each of the CombiningElements
	 * @param elements the List of CombiningElements to evaluate
	 * @param combinerParameters the List of CombinerParameters to apply to the combining algorithm
	 * @return the combined EvaluationResult
	 * @throws EvaluationException if there is an error in the evaluate method of any of the CombiningElements
	 */
	public EvaluationResult combine(EvaluationContext evaluationContext, List> elements, List combinerParameters) throws EvaluationException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy