All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cerner.beadledom.client.jackson.AnnotatedJacksonPrivateModule Maven / Gradle / Ivy

The newest version!
package com.cerner.beadledom.client.jackson;

import com.cerner.beadledom.guice.BindingAnnotations;
import com.cerner.beadledom.guice.dynamicbindings.AnnotatedModule;
import com.cerner.beadledom.guice.dynamicbindings.DynamicBindingProvider;
import com.cerner.beadledom.jackson.DeserializationFeatureFlag;
import com.cerner.beadledom.jackson.JsonGeneratorFeatureFlag;
import com.cerner.beadledom.jackson.JsonParserFeatureFlag;
import com.cerner.beadledom.jackson.MapperFeatureFlag;
import com.cerner.beadledom.jackson.SerializationFeatureFlag;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.google.inject.BindingAnnotation;
import com.google.inject.TypeLiteral;
import java.lang.annotation.Annotation;
import java.util.Set;

/**
 * A private Guice module that provides the Json Serialization via {@link ObjectMapper}.
 *
 * 

This module is intended to be used within the {@link AnnotatedJacksonModule}. * *

This module exposes the following *

    *
  • * {@link JacksonJsonProvider} annotated with the given {@link BindingAnnotation} via a guice * provider {@link JacksonJsonGuiceProvider} *
  • *
* *

This module binds the following *

    *
  • A {@link DynamicBindingProvider} for a Set of {@link Module}
  • *
  • A {@link DynamicBindingProvider} for a Set of {@link SerializationFeatureFlag}
  • *
  • A {@link DynamicBindingProvider} for a Set of {@link DeserializationFeatureFlag}
  • *
  • A {@link DynamicBindingProvider} for a Set of {@link JsonGeneratorFeatureFlag}
  • *
  • A {@link DynamicBindingProvider} for a Set of {@link JsonParserFeatureFlag}
  • *
  • A {@link DynamicBindingProvider} for a Set of {@link MapperFeatureFlag}
  • *
* * @author Sundeep Paruvu * @since 2.2 * @deprecated As of 3.6, use Retrofit (https://github.com/square/retrofit) instead. */ @Deprecated class AnnotatedJacksonPrivateModule extends AnnotatedModule { protected AnnotatedJacksonPrivateModule( Class clientBindingAnnotation) { super(clientBindingAnnotation); } /** * A static method to create an instance of {@link AnnotatedJacksonPrivateModule}. * * @param clientBindingAnnotation a {@link BindingAnnotation} to which the {@link ObjectMapper} * need to be annotated with. * * @return an instance of {@link AnnotatedJacksonPrivateModule} */ static AnnotatedJacksonPrivateModule with( Class clientBindingAnnotation) { if (clientBindingAnnotation == null) { throw new NullPointerException("clientBindingAnnotation:null"); } BindingAnnotations.checkIsBindingAnnotation(clientBindingAnnotation); return new AnnotatedJacksonPrivateModule(clientBindingAnnotation); } @Override protected void configure() { AnnotatedObjectMapperProvider provider = new AnnotatedObjectMapperProvider(getBindingAnnotation()); bind(ObjectMapper.class).annotatedWith(getBindingAnnotation()).toProvider(provider) .asEagerSingleton(); bindDynamicProvider(ObjectMapper.class); expose(ObjectMapper.class).annotatedWith(getBindingAnnotation()); bind(JacksonJsonProvider.class).annotatedWith(getBindingAnnotation()) .toProvider(new JacksonJsonGuiceProvider(getBindingAnnotation())); expose(JacksonJsonProvider.class).annotatedWith(getBindingAnnotation()); bindDynamicProvider(new TypeLiteral>() { }); bindDynamicProvider(new TypeLiteral>() { }); bindDynamicProvider(new TypeLiteral>() { }); bindDynamicProvider(new TypeLiteral>() { }); bindDynamicProvider(new TypeLiteral>() { }); bindDynamicProvider(new TypeLiteral>() { }); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy