|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface Function
Interface that all functions in the system must implement.
| Method Summary | |
|---|---|
void |
checkInputs(List inputs)
Checks that the given inputs are of the right types, in the right order, and are the right number for this function to evaluate. |
void |
checkInputsNoBag(List inputs)
Checks that the given inputs are of the right types, in the right order, and are the right number for this function to evaluate. |
void |
encode(OutputStream output)
Encodes this Function into its XML representation and
writes this encoding to the given OutputStream with no
indentation. |
void |
encode(OutputStream output,
Indenter indenter)
Encodes this Function into its XML representation and
writes this encoding to the given OutputStream with
indentation. |
EvaluationResult |
evaluate(List inputs,
EvaluationCtx context)
Evaluates the Function using the given inputs. |
URI |
getIdentifier()
Returns the identifier of this function as known by the factories. |
URI |
getReturnType()
Provides the type of AttributeValue that this function
returns from evaluate in a successful evaluation. |
boolean |
returnsBag()
Tells whether this function will return a bag of values or just a single value. |
| Methods inherited from interface org.jboss.security.xacml.sunxacml.cond.Expression |
|---|
getType |
| Method Detail |
|---|
EvaluationResult evaluate(List inputs,
EvaluationCtx context)
Function using the given inputs.
The List contains Evaluatables which are all
of the correct type if the Function has been created as
part of an Apply or TargetMatch, but which
may otherwise be invalid. Each parameter should be evaluated by the
Function, unless the Function
doesn't need to evaluate all inputs to determine a result (as in the
case of the or function). The order of the List is
significant, so a Function should have a very good reason
if it wants to evaluate the inputs in a different order.
Note that if this is a higher-order function, like any-of, then
some argument (typically the first) in the List will
actually be a Function object representing the function to apply to
some bag. A function needs to know if it's a higher-order function,
and therefore whether or not to look for this case. Also, a
higher-order function is responsible for checking that the inputs
that it will pass to the Function provided as the first
parameter are valid, ie. it must do a checkInputs on
its sub-function when checkInputs is called on the
higher-order function.
- Parameters:
inputs - the List of inputs for the functioncontext - the representation of the request
- Returns:
- a result containing the
AttributeValue computed
when evaluating the function, or Status
specifying some error condition
URI getIdentifier()
URI getReturnType()
AttributeValue that this function
returns from evaluate in a successful evaluation.
boolean returnsBag()
returnsBag in interface Expression
void checkInputs(List inputs)
throws IllegalArgumentException
IllegalArgumentException is thrown.
inputs - a List of Evaluatables, with
the first argument being a Function if
this is a higher-order function
IllegalArgumentException - if the inputs do match what the
function accepts for evaluation
void checkInputsNoBag(List inputs)
throws IllegalArgumentException
IllegalArgumentException is thrown. Unlike the other
checkInput method in this interface, this assumes that
the parameters will never provide bags of values. This is useful if
you're considering a target function which has a designator or
selector in its input list, but which passes the values from the
derived bags one at a time to the function, so the function doesn't
have to deal with the bags that the selector or designator
generates.
inputs - a List of Evaluatables, with
the first argument being a Function if
this is a higher-order function
IllegalArgumentException - if the inputs do match what the
function accepts for evaluationvoid encode(OutputStream output)
Function into its XML representation and
writes this encoding to the given OutputStream with no
indentation.
encode in interface Expressionoutput - a stream into which the XML-encoded data is written
void encode(OutputStream output,
Indenter indenter)
Function into its XML representation and
writes this encoding to the given OutputStream with
indentation.
encode in interface Expressionoutput - a stream into which the XML-encoded data is writtenindenter - an object that creates indentation strings
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||