Class EnumCodec<T extends Enum<T>>

java.lang.Object
org.bson.codecs.EnumCodec<T>
Type Parameters:
T - The enum type
All Implemented Interfaces:
Codec<T>, Decoder<T>, Encoder<T>

public final class EnumCodec<T extends Enum<T>> extends Object implements Codec<T>
A codec for classes that extends Enum
Since:
4.5
  • Constructor Details

    • EnumCodec

      public EnumCodec(Class<T> clazz)
      Construct an instance for teh given enum class.
      Parameters:
      clazz - the enum class
  • Method Details

    • decode

      public T decode(BsonReader reader, DecoderContext decoderContext)
      Description copied from interface: Decoder
      Decodes a BSON value from the given reader into an instance of the type parameter T.
      Specified by:
      decode in interface Decoder<T extends Enum<T>>
      Parameters:
      reader - the BSON reader
      decoderContext - the decoder context
      Returns:
      an instance of the type parameter T.
    • encode

      public void encode(BsonWriter writer, T value, EncoderContext encoderContext)
      Description copied from interface: Encoder
      Encode an instance of the type parameter T into a BSON value.
      Specified by:
      encode in interface Encoder<T extends Enum<T>>
      Parameters:
      writer - the BSON writer to encode into
      value - the value to encode
      encoderContext - the encoder context
    • getEncoderClass

      public Class<T> getEncoderClass()
      Description copied from interface: Encoder
      Returns the Class instance that this encodes. This is necessary because Java does not reify generic types.
      Specified by:
      getEncoderClass in interface Encoder<T extends Enum<T>>
      Returns:
      the Class instance that this encodes.