public interface IHierarchyProvider extends IServiceProvider
Implement this interface to create a hierarchy provider. In addition to implementing this interface, the classes implementing the interface must provide a public constructor that accepts a Map<String,String> that can be used to create an instance of the hierarchy provider class, for example public MyHierarchyProviderImpl( Map<String,String> initParams){}
.
Hierarchy providers must be registered in the workflow-config.xml configuration file. The Map passed to the constructor will contain any parameters defined in the configuration file entry for the provider.
When invoking an IHierarchy provider, a HierarchyPrincipal object will be passed. The HierarchyPrincipal object contains id and effectiveDate properties. The effectiveDate may be null. A list of the names of any other properties required by the HierarchyProvider must be returned by the getPropertyNames() method. These additional properties will be passed in the HierarchyPrincipal propertyBag. The values for these properties are detmerined by the ApprovalFramework by looking up matching attributes in the Task payload and in the Appoval Policy. If matching attributes are found in both sources, the value of the Approval Policy attribute takes precedence. If no matching attributes are found, then the value of the property passed to the IHierarchyProvider will be null. It is up to the IHierarchyProvider implementation how it will handle null values, for example defaulting the value, or throwing an exception.
When an IHierarchyProvider implementation returns an instance of a HierarchyPrincipal, it is responsible for setting the values of all its properties, including those in the propertyBag
Modifier and Type | Interface and Description |
---|---|
static class |
IHierarchyProvider.HierarchyProviderException
Exception thrown by IHierarchyProvider methods
|
Modifier and Type | Method and Description |
---|---|
java.util.List<oracle.bpel.services.identity.hierarchy.HierarchyType> |
fetchHierarchyTypes(java.lang.String filter, java.lang.String isoLang)
Gets the hierarchy type values to use when looking up the hierarchiy from the provider.
|
HierarchyPrincipal |
fetchJobLevel(HierarchyPrincipal principal)
Determines the jobLevel for a given principal.
|
HierarchyPrincipal |
fetchManager(HierarchyPrincipal principal)
Determines the manager for a given HierarchyPrincipal.
|
java.util.List<HierarchyPrincipal> |
fetchManagers(HierarchyPrincipal principal, int levelNumber)
Determines the manager(s) for a given HierarchyPrincipal.
|
java.util.List<java.lang.String> |
getPropertyNames()
Returns a list of names of additional properties that the IHierarchyProvider implementation required for identifying a HierarchyPrincipal, and for traversing the hierarchy.
|
init
HierarchyPrincipal fetchJobLevel(HierarchyPrincipal principal) throws IHierarchyProvider.HierarchyProviderException
principal
- HierarchyPrincipal to determine jobLevel for.IHierarchyProvider.HierarchyProviderException
HierarchyPrincipal fetchManager(HierarchyPrincipal principal) throws IHierarchyProvider.HierarchyProviderException
principal
- HierarchyPrincipal to determine jobLevel for.IHierarchyProvider.HierarchyProviderException
java.util.List<java.lang.String> getPropertyNames()
java.util.List<HierarchyPrincipal> fetchManagers(HierarchyPrincipal principal, int levelNumber) throws IHierarchyProvider.HierarchyProviderException
principal
- HierarchyPrincipal to determine manager for.levelNumber
- - number of level returned.IHierarchyProvider.HierarchyProviderException
java.util.List<oracle.bpel.services.identity.hierarchy.HierarchyType> fetchHierarchyTypes(java.lang.String filter, java.lang.String isoLang) throws IHierarchyProvider.HierarchyProviderException
filter
- specifies the filter string to get hierarchy types.isoLang
- language to get the display name of the hierarchy type.IHierarchyProvider.HierarchyProviderException