Package de.bild.codec

Class CollectionTypeCodec<C extends Collection<V>,V>

java.lang.Object
de.bild.codec.AbstractTypeCodec<C>
de.bild.codec.CollectionTypeCodec<C,V>
Type Parameters:
C - collection type
V - value type
All Implemented Interfaces:
TypeCodec<C>, org.bson.codecs.Codec<C>, org.bson.codecs.Decoder<C>, org.bson.codecs.Encoder<C>
Direct Known Subclasses:
ListTypeCodec, SetTypeCodec

public abstract class CollectionTypeCodec<C extends Collection<V>,V> extends AbstractTypeCodec<C>
This codec encodes/decodes any Set and Map (see sub classes) Note that this codec will never persist any addition properties declared in sub classes Solely the collection values itself will be persisted. The advantage is to keep declared methods of Collecton sub classes. If you really need to persist additional fields with your map, think about using composition over inheritance. Use a container class that holds a reference to a Collection.
  • Constructor Details

  • Method Details

    • decode

      public C decode(org.bson.BsonReader reader, org.bson.codecs.DecoderContext decoderContext)
    • encode

      public void encode(org.bson.BsonWriter writer, C values, org.bson.codecs.EncoderContext encoderContext)
    • defaultInstance

      public C defaultInstance()
      Description copied from interface: TypeCodec
      Override this method if your Codec needs to supply default values as replacements for null values.
      Returns:
      null or a default value
    • getDefaultConstructor

      protected Constructor<C> getDefaultConstructor(Class<C> clazz)
      Overrides:
      getDefaultConstructor in class AbstractTypeCodec<C extends Collection<V>>
    • newInstance

      public C newInstance()
      Overrides:
      newInstance in class AbstractTypeCodec<C extends Collection<V>>