Package net.shibboleth.idp.attribute.resolver

# Interface ResolverPlugin<ResolvedType>

Type Parameters:
  `ResolvedType` - object type this plug-in resolves to

All Superinterfaces:
  `Component`, `DestructableComponent`, `IdentifiedComponent`, `InitializableComponent`, `UnmodifiableComponent`

All Known Subinterfaces:
  `AttributeDefinition`, `DataConnector`

All Known Implementing Classes:
  `AbstractAttributeDefinition`, `AbstractDataConnector`, `AbstractResolverPlugin`, `AbstractSearchDataConnector`, `ContextDerivedAttributeDefinition`, `ContextDerivedDataConnector`, `DateTimeAttributeDefinition`, `DecryptedAttributeDefinition`, `EntityAttributesDataConnector`, `HTTPDataConnector`, `LDAPDataConnector`, `MappedAttributeDefinition`, `MockAttributeDefinition`, `MockDataConnector`, `MockStaticAttributeDefinition`, `MockStaticDataConnector`, `PairwiseIdDataConnector`, `PrescopedAttributeDefinition`, `PrincipalNameAttributeDefinition`, `RDBMSDataConnector`, `RegexSplitAttributeDefinition`, `ResolvedAttributeDefinition`, `ResolvedDataConnector`, `SAML1NameIdentifierAttributeDefinition`, `SAML2NameIDAttributeDefinition`, `SAMLAttributeDataConnector`, `SAMLDataConnector`, `ScopedAttributeDefinition`, `ScriptedAttributeDefinition`, `ScriptedDataConnector`, `SimpleAggregationSAMLDataConnector`, `SimpleAttributeDefinition`, `StaticAttributeDefinition`, `StaticDataConnector`, `StorageServiceDataConnector`, `TemplateAttributeDefinition`, `TestSources.StaticAttributeDefinition`, `TestSources.StaticDataConnector`

@ThreadSafe public interface ResolverPlugin<ResolvedType> extends UnmodifiableComponent, InitializableComponent, DestructableComponent, IdentifiedComponent
Interface defining the base work done by all plugins used within attribute resolution.

## Method Summary

Modifier and Type
Method
Description
`Predicate<ProfileRequestContext>`
`getActivationCondition()`
Get the predicate which defines whether this plugin is active for a given request.
`Set<ResolverAttributeDefinitionDependency>`
`getAttributeDependencies()`
Get the unmodifiable list of attribute dependencies for this plugin.
`Set<ResolverDataConnectorDependency>`
`getDataConnectorDependencies()`
Get the unmodifiable list of data connector dependencies for this plugin.
`boolean`
`isPropagateResolutionExceptions()`
Get whether a `ResolutionException` that occurred resolving attributes will be re-thrown.
`ResolvedType`
`resolve(AttributeResolutionContext resolutionContext)`
Perform the attribute resolution for this plugin.

### Methods inherited from interface net.shibboleth.shared.component.DestructableComponent

`destroy, isDestroyed`

### Methods inherited from interface net.shibboleth.shared.component.IdentifiedComponent

`getId`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

## Method Details

### isPropagateResolutionExceptions

boolean isPropagateResolutionExceptions()
Get whether a `ResolutionException` that occurred resolving attributes will be re-thrown. Doing so will cause the entire attribute resolution request to fail.

Returns:
  true if `ResolutionException`s are propagated, false if not

### getActivationCondition

@Nullable Predicate<ProfileRequestContext> getActivationCondition()
Get the predicate which defines whether this plugin is active for a given request.

Returns:
  the predicate.

### getAttributeDependencies

@Nonnull @Unmodifiable @NotLive Set<ResolverAttributeDefinitionDependency> getAttributeDependencies()
Get the unmodifiable list of attribute dependencies for this plugin.

Returns:
  unmodifiable list of attribute dependencies for this plugin, never null

### getDataConnectorDependencies

@Nonnull @Unmodifiable @NotLive Set<ResolverDataConnectorDependency> getDataConnectorDependencies()
Get the unmodifiable list of data connector dependencies for this plugin.

Returns:
  unmodifiable list of data connector dependencies for this plugin, never null

### resolve

@Nullable ResolvedType resolve(@Nonnull AttributeResolutionContext resolutionContext) throws ResolutionException
Perform the attribute resolution for this plugin.

Parameters:
  `resolutionContext` - current attribute resolution context
Returns:
  the attributes made available by the resolution, or null if no attributes were resolved
Throws:
  `ResolutionException` - thrown if there was a problem resolving the attributes