Class AttributeResolverWorkContext

  • All Implemented Interfaces:
    Iterable<BaseContext>

    @NotThreadSafe
    public final class AttributeResolverWorkContext
    extends BaseContext
    A context which carries and collects information through the attribute resolution process, and coordinates data between the resolver implementation and the various resolver plugin implementations.

    This should be considered a private API limited to plugin implementations.

    • Constructor Detail

      • AttributeResolverWorkContext

        public AttributeResolverWorkContext()
        Constructor.
    • Method Detail

      • recordAttributeDefinitionResolution

        public void recordAttributeDefinitionResolution​(@Nonnull
                                                        AttributeDefinition definition,
                                                        @Nullable
                                                        IdPAttribute attribute)
                                                 throws ResolutionException
        Records the results of an attribute definition resolution.
        Parameters:
        definition - the resolved attribute definition, must not be null
        attribute - the attribute produced by the given attribute definition, may be null
        Throws:
        ResolutionException - thrown if a result of a resolution for the given attribute definition have already been recorded
      • recordDataConnectorResolution

        public void recordDataConnectorResolution​(@Nonnull
                                                  DataConnector connector,
                                                  @Nullable
                                                  Map<String,​IdPAttribute> attributes)
                                           throws ResolutionException
        Records the results of an data connector resolution.
        Parameters:
        connector - the resolved data connector, must not be null
        attributes - the attribute produced by the given data connector, may be null
        Throws:
        ResolutionException - thrown if a result of a resolution for the given data connector has already been recorded
      • recordFailoverResolution

        public void recordFailoverResolution​(@Nonnull
                                             DataConnector failedConnector,
                                             @Nonnull
                                             DataConnector failoverConnector)
                                      throws ResolutionException
        Transfer the attributes from a failover data connector to a failed one. This allows up stream processing to pretend that the failed connector worked OK. The inherent duplication is OK since the code which exploits this does the dedupe.
        Parameters:
        failedConnector - the connector which failed and provoked the failover.
        failoverConnector - the failover connector which did resolve OK.
        Throws:
        ResolutionException - if badness ocurrs