Class DefaultReflectionTranscoder

java.lang.Object
org.ldaptive.beans.reflect.DefaultReflectionTranscoder
All Implemented Interfaces:
ReflectionTranscoder

public class DefaultReflectionTranscoder extends Object implements ReflectionTranscoder
Default implementation of a reflection transcoder. Determines the correct underlying reflection transcoder by inspecting the class type characteristics.
  • Field Details

    • logger

      protected final org.slf4j.Logger logger
      Logger for this class.
    • customTranscoder

      private final SingleValueReflectionTranscoder<?> customTranscoder
      Custom transcoder to override the default transcoder.
    • valueTranscoder

      private final ReflectionTranscoder valueTranscoder
      Transcoder for this type.
    • singleValueTranscoders

      private final Set<SingleValueReflectionTranscoder<?>> singleValueTranscoders
      Set of transcoders support single values.
  • Constructor Details

    • DefaultReflectionTranscoder

      public DefaultReflectionTranscoder(Type type)
      Creates a new default reflection transcoder.
      Parameters:
      type - of object to transcode
    • DefaultReflectionTranscoder

      public DefaultReflectionTranscoder(Type type, ValueTranscoder<?> transcoder)
      Creates a new default reflection transcoder.
      Parameters:
      type - of object to transcode
      transcoder - custom transcoder for this type
  • Method Details

    • getDefaultSingleValueTranscoders

      protected Set<SingleValueReflectionTranscoder<?>> getDefaultSingleValueTranscoders()
      Initializes the set of default single value transcoders.
      Returns:
      single value transcoders
    • getSingleValueReflectionTranscoder

      protected SingleValueReflectionTranscoder getSingleValueReflectionTranscoder(Class<?> type)
      Returns the appropriate single value encoder for the supplied type.
      Parameters:
      type - to provide a single value encoder for
      Returns:
      single value reflection transcoder
    • getCollectionEncoder

      protected ReflectionTranscoder getCollectionEncoder(Class<?> type, Type genericType)
      Returns the appropriate collection encoder for the supplied type.
      Parameters:
      type - to provide a collection encoder for
      genericType - of the collection
      Returns:
      reflection transcoder for a collection
    • decodeStringValues

      public Object decodeStringValues(Collection<String> values)
      Description copied from interface: ReflectionTranscoder
      Decodes the supplied values into an object.
      Specified by:
      decodeStringValues in interface ReflectionTranscoder
      Parameters:
      values - to decode
      Returns:
      object initialized with the values
    • decodeBinaryValues

      public Object decodeBinaryValues(Collection<byte[]> values)
      Description copied from interface: ReflectionTranscoder
      Decodes the supplied values into an object.
      Specified by:
      decodeBinaryValues in interface ReflectionTranscoder
      Parameters:
      values - to decode
      Returns:
      object initialized with the values
    • encodeStringValues

      public Collection<String> encodeStringValues(Object values)
      Description copied from interface: ReflectionTranscoder
      Encodes the supplied value into one or more strings for use in an attribute.
      Specified by:
      encodeStringValues in interface ReflectionTranscoder
      Parameters:
      values - containing data to encode as strings
      Returns:
      string attribute values
    • encodeBinaryValues

      public Collection<byte[]> encodeBinaryValues(Object values)
      Description copied from interface: ReflectionTranscoder
      Encodes the supplied value into one or more byte arrays for use in an attribute.
      Specified by:
      encodeBinaryValues in interface ReflectionTranscoder
      Parameters:
      values - containing data to encode as byte arrays
      Returns:
      binary attribute values
    • getType

      public Class<?> getType()
      Description copied from interface: ReflectionTranscoder
      Returns the type produced by this transcoder.
      Specified by:
      getType in interface ReflectionTranscoder
      Returns:
      type produced by this transcoder
    • supports

      public boolean supports(Class<?> type)
      Description copied from interface: ReflectionTranscoder
      Returns whether this transcoder can convert object of the supplied type.
      Specified by:
      supports in interface ReflectionTranscoder
      Parameters:
      type - of object
      Returns:
      whether the supplied type can be converted
    • toString

      public String toString()
      Overrides:
      toString in class Object