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, ScopedAttributeDefinition, ScriptedAttributeDefinition, ScriptedDataConnector, 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 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 ResolutionExceptions 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