Class AbstractAttributeTranscoder<T>

java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
net.shibboleth.idp.attribute.transcoding.AbstractAttributeTranscoder<T>
Type Parameters:
T - type of object supported
All Implemented Interfaces:
AttributeTranscoder<T>, Component, DestructableComponent, InitializableComponent
Direct Known Subclasses:
AbstractCASAttributeTranscoder, AbstractSAMLAttributeTranscoder

public abstract class AbstractAttributeTranscoder<T>
extends AbstractInitializableComponent
implements AttributeTranscoder<T>
Base class for transcoders.
  • Field Details

    • log

      @Nonnull private final org.slf4j.Logger log
      Class logger.
    • activationCondition

      @Nonnull private Predicate<ProfileRequestContext> activationCondition
      Condition for use of this transcoder.
  • Constructor Details

    • AbstractAttributeTranscoder

      public AbstractAttributeTranscoder()
      Constructor.
  • Method Details

    • setActivationCondition

      public void setActivationCondition​(@Nonnull Predicate<ProfileRequestContext> condition)
      Set an activation condition for this transcoder.
      Parameters:
      condition - condition to set
    • encode

      @Nullable public T encode​(@Nullable ProfileRequestContext profileRequestContext, @Nonnull IdPAttribute attribute, @Nonnull Class<? extends T> to, @Nonnull TranscodingRule rule) throws AttributeEncodingException
      Encode the supplied attribute into a protocol specific representation.
      Specified by:
      encode in interface AttributeTranscoder<T>
      Parameters:
      profileRequestContext - current profile request context
      attribute - the attribute to encode
      to - specific type of object to encode
      rule - properties governing the encoding process, principally the resulting object's naming
      Returns:
      the Object the attribute was encoded into
      Throws:
      AttributeEncodingException - if unable to successfully encode attribute
    • decode

      @Nullable public IdPAttribute decode​(@Nullable ProfileRequestContext profileRequestContext, @Nonnull T input, @Nonnull TranscodingRule rule) throws AttributeDecodingException
      Decode the supplied object into a protocol-neutral representation.
      Specified by:
      decode in interface AttributeTranscoder<T>
      Parameters:
      profileRequestContext - current profile request context
      input - the object to decode
      rule - properties governing the decoding process, principally the resulting attribute's naming
      Returns:
      the attribute the object was decoded into
      Throws:
      AttributeDecodingException - if unable to successfully decode object
    • doEncode

      @Nullable protected abstract T doEncode​(@Nullable ProfileRequestContext profileRequestContext, @Nonnull IdPAttribute attribute, @Nonnull Class<? extends T> to, @Nonnull TranscodingRule rule) throws AttributeEncodingException
      Encode the supplied attribute into a protocol specific representation.
      Parameters:
      profileRequestContext - current profile request context
      attribute - the attribute to encode
      to - specific type of object to encode
      rule - properties governing the encoding process, principally the resulting object's naming
      Returns:
      the Object the attribute was encoded into
      Throws:
      AttributeEncodingException - if unable to successfully encode attribute
    • doDecode

      @Nullable protected abstract IdPAttribute doDecode​(@Nullable ProfileRequestContext profileRequestContext, @Nonnull T input, @Nonnull TranscodingRule rule) throws AttributeDecodingException
      Decode the supplied object into a protocol-neutral representation.
      Parameters:
      profileRequestContext - current profile request context
      input - the object to decode
      rule - properties governing the decoding process, principally the resulting attribute's naming
      Returns:
      the attribute the object was decoded into
      Throws:
      AttributeDecodingException - if unable to successfully decode object
    • checkActivation

      private boolean checkActivation​(@Nullable ProfileRequestContext profileRequestContext, @Nonnull TranscodingRule rule)
      Apply any activation rules to the request.
      Parameters:
      profileRequestContext - current profile request context
      rule - properties governing the transoding process
      Returns:
      true iff the process should continue