Class AbstractAttributeTranscoder<T>

    • Field Detail

      • log

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

      • AbstractAttributeTranscoder

        public AbstractAttributeTranscoder()
        Constructor.
    • Method Detail

      • 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