Class BaseMorphiaCodec<T>

  • Type Parameters:
    T - the entity type
    All Implemented Interfaces:
    org.bson.codecs.Codec<T>, org.bson.codecs.Decoder<T>, org.bson.codecs.Encoder<T>
    Direct Known Subclasses:
    MorphiaCodec

    public class BaseMorphiaCodec<T>
    extends org.bson.codecs.pojo.PojoCodecImpl<T>
    the base of the codec used by Morphia
    • Constructor Summary

      Constructors 
      Constructor Description
      BaseMorphiaCodec​(Datastore datastore, List<org.bson.codecs.pojo.PropertyCodecProvider> propertyCodecProviders, org.bson.codecs.pojo.DiscriminatorLookup discriminatorLookup, org.bson.codecs.pojo.ClassModel<T> classModel, org.bson.codecs.configuration.CodecRegistry registry)
      Creates a new codec
      BaseMorphiaCodec​(Datastore datastore, org.bson.codecs.pojo.PropertyCodecRegistry propertyCodecRegistry, org.bson.codecs.pojo.DiscriminatorLookup discriminatorLookup, ConcurrentMap<org.bson.codecs.pojo.ClassModel<?>,​org.bson.codecs.Codec<?>> codecCache, boolean specialized, org.bson.codecs.pojo.ClassModel<T> classModel, org.bson.codecs.configuration.CodecRegistry registry)
      Creates a new codec
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected <S> void decodePropertyModel​(org.bson.BsonReader reader, org.bson.codecs.DecoderContext decoderContext, org.bson.codecs.pojo.InstanceCreator<T> instanceCreator, String name, org.bson.codecs.pojo.PropertyModel<S> propertyModel)  
      void encode​(org.bson.BsonWriter writer, T value, org.bson.codecs.EncoderContext encoderContext)
      Encode an instance of the type parameter T into a BSON value.
      Mapper getMapper()  
      protected <S> org.bson.codecs.pojo.PojoCodec<S> getSpecializedCodec​(org.bson.codecs.pojo.ClassModel<S> specialized, Datastore datastore)  
      protected <T1> boolean shouldSpecialize​(org.bson.codecs.pojo.ClassModel<T1> classModel)  
      protected void specialize()  
      • Methods inherited from class org.bson.codecs.pojo.PojoCodecImpl

        areEquivalentTypes, decode, decodeProperties, encodeIdProperty, encodeProperty, getClassModel, getCodecCache, getDiscriminatorLookup, getEncoderClass, getPropertyCodecRegistry, getRegistry, toString
    • Constructor Detail

      • BaseMorphiaCodec

        public BaseMorphiaCodec​(Datastore datastore,
                                List<org.bson.codecs.pojo.PropertyCodecProvider> propertyCodecProviders,
                                org.bson.codecs.pojo.DiscriminatorLookup discriminatorLookup,
                                org.bson.codecs.pojo.ClassModel<T> classModel,
                                org.bson.codecs.configuration.CodecRegistry registry)
        Creates a new codec
        Parameters:
        datastore - the datastore
        propertyCodecProviders - the codec provider for properties
        discriminatorLookup - the discriminator lookup
        classModel - the model of the entity
        registry - the codec registry for lookups
      • BaseMorphiaCodec

        public BaseMorphiaCodec​(Datastore datastore,
                                org.bson.codecs.pojo.PropertyCodecRegistry propertyCodecRegistry,
                                org.bson.codecs.pojo.DiscriminatorLookup discriminatorLookup,
                                ConcurrentMap<org.bson.codecs.pojo.ClassModel<?>,​org.bson.codecs.Codec<?>> codecCache,
                                boolean specialized,
                                org.bson.codecs.pojo.ClassModel<T> classModel,
                                org.bson.codecs.configuration.CodecRegistry registry)
        Creates a new codec
        Parameters:
        datastore - the datastore
        propertyCodecRegistry - the codec registry for properties
        discriminatorLookup - the discriminator lookup
        codecCache - the cache of codecs
        specialized - has this codec been specialized for a particular instance/field
        classModel - the model of the entity
        registry - the codec registry for lookups
    • Method Detail

      • getMapper

        public Mapper getMapper()
        Returns:
        the mapper being used
      • specialize

        protected void specialize()
        Overrides:
        specialize in class org.bson.codecs.pojo.PojoCodecImpl<T>
      • encode

        public void encode​(org.bson.BsonWriter writer,
                           T value,
                           org.bson.codecs.EncoderContext encoderContext)
        Description copied from interface: org.bson.codecs.Encoder
        Encode an instance of the type parameter T into a BSON value.
        Specified by:
        encode in interface org.bson.codecs.Encoder<T>
        Overrides:
        encode in class org.bson.codecs.pojo.PojoCodecImpl<T>
        Parameters:
        writer - the BSON writer to encode into
        value - the value to encode
        encoderContext - the encoder context
      • getSpecializedCodec

        protected <S> org.bson.codecs.pojo.PojoCodec<S> getSpecializedCodec​(org.bson.codecs.pojo.ClassModel<S> specialized,
                                                                            Datastore datastore)
      • decodePropertyModel

        protected <S> void decodePropertyModel​(org.bson.BsonReader reader,
                                               org.bson.codecs.DecoderContext decoderContext,
                                               org.bson.codecs.pojo.InstanceCreator<T> instanceCreator,
                                               String name,
                                               org.bson.codecs.pojo.PropertyModel<S> propertyModel)
        Overrides:
        decodePropertyModel in class org.bson.codecs.pojo.PojoCodecImpl<T>
      • shouldSpecialize

        protected <T1> boolean shouldSpecialize​(org.bson.codecs.pojo.ClassModel<T1> classModel)
        Overrides:
        shouldSpecialize in class org.bson.codecs.pojo.PojoCodecImpl<T>