| 
SunTM's XACML Implementation for JavaTM | |||||||||
| 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 higher-order 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 higher-order function, like any-of, 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 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 
 
public URI getIdentifier()
public URI getReturnType()
AttributeValue that this function
 returns from evaluate in a successful evaluation.
public boolean returnsBag()
public 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
public 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 evaluation
  | 
Sun's XACML Implementation Version 1.2 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Sun, Sun Microsystems, the Sun Logo, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.