org.wso2.balana.finder
Class AttributeFinder

java.lang.Object
  extended by org.wso2.balana.finder.AttributeFinder

public class AttributeFinder
extends Object

This class is used by the PDP to find attribute values that weren't originally supplied in the request. It can be called with the data supplied in AttributeDesignators or AttributeSelectors. Because the modules in this finder may themselves need attribute data to search for attribute data, it's possible that the modules will look for values in the EvaluationCtx, which may in turn result in the invocation of this finder again, so module writers need to be careful about how they build their modules.

Note that unlike the PolicyFinder, this class doesn't always need to use every module it has to find a value. The ordering is maintained, however, so it will always start with the first module, and proceed in order until it finds a value or runs out of modules.

Since:
1.0
Author:
Seth Proctor

Constructor Summary
AttributeFinder()
          Default constructor.
 
Method Summary
 EvaluationResult findAttribute(String contextPath, String contextSelector, URI attributeType, Node root, EvaluationCtx context, String xpathVersion)
          Tries to find attribute values based on the given selector data.
 EvaluationResult findAttribute(String contextPath, URI attributeType, EvaluationCtx context, String xpathVersion)
          Tries to find attribute values based on the given selector data.
 EvaluationResult findAttribute(URI attributeType, URI attributeId, String issuer, URI category, EvaluationCtx context)
          Tries to find attribute values based on the given designator data.
 List<AttributeFinderModule> getModules()
          Returns the ordered List of AttributeFinderModules used by this class to find attribute values.
 void setModules(List<AttributeFinderModule> modules)
          Sets the ordered List of AttributeFinderModules used by this class to find attribute values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AttributeFinder

public AttributeFinder()
Default constructor.

Method Detail

getModules

public List<AttributeFinderModule> getModules()
Returns the ordered List of AttributeFinderModules used by this class to find attribute values.

Returns:
a List of AttributeFinderModules

setModules

public void setModules(List<AttributeFinderModule> modules)
Sets the ordered List of AttributeFinderModules used by this class to find attribute values. The ordering will be maintained.

Parameters:
modules - a List of AttributeFinderModules

findAttribute

public EvaluationResult findAttribute(URI attributeType,
                                      URI attributeId,
                                      String issuer,
                                      URI category,
                                      EvaluationCtx context)
Tries to find attribute values based on the given designator data. The result, if successful, will always contain a BagAttribute, even if only one value was found. If no values were found, but no other error occurred, an empty bag is returned.

Parameters:
attributeType - the datatype of the attributes to find
attributeId - the identifier of the attributes to find
issuer - the issuer of the attributes, or null if unspecified
category - the category of the attribute if the designatorType is SUBJECT_TARGET, otherwise null
context - the representation of the request data
Returns:
the result of attribute retrieval, which will be a bag of attributes or an error

findAttribute

public EvaluationResult findAttribute(String contextPath,
                                      URI attributeType,
                                      EvaluationCtx context,
                                      String xpathVersion)
Tries to find attribute values based on the given selector data. The result, if successful, must always contain a BagAttribute, even if only one value was found. If no values were found, but no other error occurred, an empty bag is returned.

Parameters:
contextPath - the XPath expression to search against
attributeType - the datatype of the attributes to find
context - the representation of the request data
xpathVersion - the XPath version to use
Returns:
the result of attribute retrieval, which will be a bag of attributes or an error

findAttribute

public EvaluationResult findAttribute(String contextPath,
                                      String contextSelector,
                                      URI attributeType,
                                      Node root,
                                      EvaluationCtx context,
                                      String xpathVersion)
Tries to find attribute values based on the given selector data. The result, if successful, must always contain a BagAttribute, even if only one value was found. If no values were found, but no other error occurred, an empty bag is returned.

Parameters:
contextPath - the XPath expression to search against
contextSelector - select the context to evaluate
attributeType - the datatype of the attributes to find
root - root XML node
context - the representation of the request data
xpathVersion - the XPath version to use
Returns:
the result of attribute retrieval, which will be a bag of attributes or an error


Copyright © 2015 WSO2. All rights reserved.