Package org.ldaptive.beans.reflect
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 Summary
Fields Modifier and Type Field Description private SingleValueReflectionTranscoder<?>customTranscoderCustom transcoder to override the default transcoder.protected LoggerloggerLogger for this class.private Set<SingleValueReflectionTranscoder<?>>singleValueTranscodersSet of transcoders support single values.private ReflectionTranscodervalueTranscoderTranscoder for this type.
-
Constructor Summary
Constructors Constructor Description DefaultReflectionTranscoder(Type type)Creates a new default reflection transcoder.DefaultReflectionTranscoder(Type type, ValueTranscoder<?> transcoder)Creates a new default reflection transcoder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectdecodeBinaryValues(Collection<byte[]> values)Decodes the supplied values into an object.ObjectdecodeStringValues(Collection<String> values)Decodes the supplied values into an object.Collection<byte[]>encodeBinaryValues(Object values)Encodes the supplied value into one or more byte arrays for use in an attribute.Collection<String>encodeStringValues(Object values)Encodes the supplied value into one or more strings for use in an attribute.protected ReflectionTranscodergetCollectionEncoder(Class<?> type, Type genericType)Returns the appropriate collection encoder for the supplied type.protected Set<SingleValueReflectionTranscoder<?>>getDefaultSingleValueTranscoders()Initializes the set of default single value transcoders.protected SingleValueReflectionTranscodergetSingleValueReflectionTranscoder(Class<?> type)Returns the appropriate single value encoder for the supplied type.Class<?>getType()Returns the type produced by this transcoder.booleansupports(Class<?> type)Returns whether this transcoder can convert object of the supplied type.StringtoString()
-
-
-
Field Detail
-
logger
protected final 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 Detail
-
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 transcodetranscoder- custom transcoder for this type
-
-
Method Detail
-
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 forgenericType- of the collection- Returns:
- reflection transcoder for a collection
-
decodeStringValues
public Object decodeStringValues(Collection<String> values)
Description copied from interface:ReflectionTranscoderDecodes the supplied values into an object.- Specified by:
decodeStringValuesin interfaceReflectionTranscoder- Parameters:
values- to decode- Returns:
- object initialized with the values
-
decodeBinaryValues
public Object decodeBinaryValues(Collection<byte[]> values)
Description copied from interface:ReflectionTranscoderDecodes the supplied values into an object.- Specified by:
decodeBinaryValuesin interfaceReflectionTranscoder- Parameters:
values- to decode- Returns:
- object initialized with the values
-
encodeStringValues
public Collection<String> encodeStringValues(Object values)
Description copied from interface:ReflectionTranscoderEncodes the supplied value into one or more strings for use in an attribute.- Specified by:
encodeStringValuesin interfaceReflectionTranscoder- Parameters:
values- containing data to encode as strings- Returns:
- string attribute values
-
encodeBinaryValues
public Collection<byte[]> encodeBinaryValues(Object values)
Description copied from interface:ReflectionTranscoderEncodes the supplied value into one or more byte arrays for use in an attribute.- Specified by:
encodeBinaryValuesin interfaceReflectionTranscoder- Parameters:
values- containing data to encode as byte arrays- Returns:
- binary attribute values
-
getType
public Class<?> getType()
Description copied from interface:ReflectionTranscoderReturns the type produced by this transcoder.- Specified by:
getTypein interfaceReflectionTranscoder- Returns:
- type produced by this transcoder
-
supports
public boolean supports(Class<?> type)
Description copied from interface:ReflectionTranscoderReturns whether this transcoder can convert object of the supplied type.- Specified by:
supportsin interfaceReflectionTranscoder- Parameters:
type- of object- Returns:
- whether the supplied type can be converted
-
-