
Sun^{TM}'s XACML Implementation for Java^{TM}  
PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
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. 
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. 
Method Detail 
public 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 this is a higherorder function (in
which case the Apply
has already evaluated the inputs
to check for any INDETERMINATE conditions), or 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 higherorder function, like anyof, then
the first argument in the List
will actually be a Function
object representing the function to apply to some bag. In this case,
the second and any subsequent entries in the list are
AttributeValue
objects (no INDETERMINATE values are
allowed, so the function is not given the option of dealing with
attributes that cannot be resolved). A function needs to know if it's
a higherorder function, and therefore whether or not to look for
this case. Also, a higherorder 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 subfunction when
checkInputs
is called on the higherorder 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
getIdentifier
public URI getIdentifier()
 Returns the identifier of this function as known by the factories.
In the case of the standard XACML functions, this will be one of the
URIs defined in the standard namespace. This function must always
return the complete namespace and identifier of this function.
 Returns:
 the function's identifier
getReturnType
public URI getReturnType()
 Provides the type of
AttributeValue
that this function
returns from evaluate
in a successful evaluation.
 Returns:
 the type returned by this function
returnsBag
public boolean returnsBag()
 Tells whether this function will return a bag of values or just a
single value.
 Returns:
 true if evaluation will return a bag, false otherwise
checkInputs
public void checkInputs(List inputs)
throws IllegalArgumentException
 Checks that the given inputs are of the right types, in the right
order, and are the right number for this function to evaluate. If
the function cannot accept the inputs for evaluation, an
IllegalArgumentException
is thrown.
 Parameters:
inputs
 a List
of Evaluatable
s, with
the first argument being a Function
if
this is a higherorder function
 Throws:
IllegalArgumentException
 if the inputs do match what the
function accepts for evaluation
checkInputsNoBag
public void checkInputsNoBag(List inputs)
throws IllegalArgumentException
 Checks that the given inputs are of the right types, in the right
order, and are the right number for this function to evaluate. If
the function cannot accept the inputs for evaluation, an
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.
 Parameters:
inputs
 a List
of Evaluatable
s, with
the first argument being a Function
if
this is a higherorder function
 Throws:
IllegalArgumentException
 if the inputs do match what the
function accepts for evaluation
Overview
Package
Class
Tree
Deprecated
Index
Help
Sun's XACML Implementation Version
1.2
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED  FIELD  CONSTR  METHOD
DETAIL: FIELD  CONSTR  METHOD
Copyright 20032004 Sun Microsystems,
Inc. All rights reserved. Use is subject to license
terms.Sun, Sun Microsystems, the Sun Logo, and Java are
trademarks or registered trademarks of Sun Microsystems, Inc. in
the US and other countries.