com.att.research.xacmlatt.pdp.policy.CombiningAlgorithm Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xacml-pdp Show documentation
Show all versions of xacml-pdp Show documentation
ATT reference implementation of XACML PDP engine
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 CombiningElement
s supplied with the given CombinerParameter
s based on
* the particular combining algorithm and combines their EvaluationResult
s into a single EvaluationResult
.
*
* @param evaluationContext the EvaluationContext
in which to evaluate each of the CombiningElement
s
* @param elements the List
of CombiningElement
s to evaluate
* @param combinerParameters the List
of CombinerParameter
s 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 CombiningElement
s
*/
public EvaluationResult combine(EvaluationContext evaluationContext, List> elements, List combinerParameters) throws EvaluationException;
}