Example usage for com.fasterxml.jackson.databind.ser BeanSerializerModifier BeanSerializerModifier

List of usage examples for com.fasterxml.jackson.databind.ser BeanSerializerModifier BeanSerializerModifier

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.ser BeanSerializerModifier BeanSerializerModifier.

Prototype

BeanSerializerModifier

Source Link

Usage

From source file:com.netflix.discovery.converters.jackson.EurekaJacksonXmlModifiers.java

public static BeanSerializerModifier createXmlSerializerModifier(final KeyFormatter keyFormatter) {
    return new BeanSerializerModifier() {
        @Override//from  ww w .  jav a 2 s. co m
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (beanDesc.getBeanClass().isAssignableFrom(Applications.class)) {
                return new ApplicationsXmlBeanSerializer((BeanSerializerBase) serializer, keyFormatter);
            }
            if (beanDesc.getBeanClass().isAssignableFrom(InstanceInfo.class)) {
                return new InstanceInfoXmlBeanSerializer((BeanSerializerBase) serializer);
            }
            return serializer;
        }
    };
}

From source file:com.microsoft.rest.serializer.FlatteningSerializer.java

/**
 * Gets a module wrapping this serializer as an adapter for the Jackson
 * ObjectMapper.//from w ww  .java 2  s . c o  m
 *
 * @param mapper the object mapper for default serializations
 * @return a simple module to be plugged onto Jackson ObjectMapper.
 */
public static SimpleModule getModule(final ObjectMapper mapper) {
    SimpleModule module = new SimpleModule();
    module.setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (beanDesc.getBeanClass().getAnnotation(JsonFlatten.class) != null) {
                return new FlatteningSerializer(beanDesc.getBeanClass(), serializer, mapper);
            }
            return serializer;
        }
    });
    return module;
}

From source file:org.xlrnet.metadict.web.jackson.MetadictModule.java

@Override
public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (serializer instanceof BeanSerializerBase) {
                return new DictionaryObjectSerializer((BeanSerializerBase) serializer);
            }/*from  ww  w .  j av a2s  .c  o  m*/
            return serializer;
        }
    });
}

From source file:de.escalon.hypermedia.spring.de.escalon.hypermedia.spring.jackson.JacksonHydraModule.java

public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {

            if (serializer instanceof BeanSerializerBase) {
                return new JacksonHydraSerializer((BeanSerializerBase) serializer);
            } else {
                return serializer;
            }/*www.j  ava  2 s  .  co m*/
        }
    });
}

From source file:de.ks.flatadocdb.defaults.json.SerializationModule.java

@Override
public void setupModule(SetupContext context) {
    context.addBeanSerializerModifier(new BeanSerializerModifier() {
        @Override//from   w w w .j av  a2 s .c  om
        public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc,
                List<BeanPropertyWriter> beanProperties) {
            if (metaModel.isRegistered(beanDesc.getBeanClass())) {
                EntityDescriptor entityDescriptor = metaModel.getEntityDescriptor(beanDesc.getBeanClass());

                List<BeanPropertyWriter> relationProperties = beanProperties.stream()//
                        .filter(p -> entityDescriptor.isRelation(p.getMember())).collect(Collectors.toList());

                List<BeanPropertyWriter> repoPathProperty = beanProperties.stream()//
                        .filter(p -> p.getAnnotation(PathInRepository.class) != null)
                        .collect(Collectors.toList());

                ArrayList<BeanPropertyWriter> all = new ArrayList<>(beanProperties);
                log.trace("Removing {} relation properties fron {}: {}", relationProperties.size(),
                        beanDesc.getBeanClass(), relationProperties);
                all.removeAll(relationProperties);
                all.removeAll(repoPathProperty);
                relationProperties.stream().map(old -> new RelationCollectionPropertyWriter(old, metaModel))
                        .forEach(all::add);
                return all;
            } else {
                return beanProperties;
            }
        }
    });

    context.addBeanDeserializerModifier(new BeanDeserializerModifier() {
        @Override
        public List<BeanPropertyDefinition> updateProperties(DeserializationConfig config,
                BeanDescription beanDesc, List<BeanPropertyDefinition> propDefs) {
            if (metaModel.isRegistered(beanDesc.getBeanClass())) {
                EntityDescriptor entityDescriptor = metaModel.getEntityDescriptor(beanDesc.getBeanClass());
                return propDefs.stream()//
                        .filter(p -> !entityDescriptor.isRelation(p.getPrimaryMember()))//
                        .filter(p -> p.getPrimaryMember().getAnnotation(PathInRepository.class) == null)//
                        .collect(Collectors.toList());
            } else {
                return propDefs;
            }
        }
    });
}

From source file:de.escalon.hypermedia.hydra.serialize.JacksonHydraSerializerTest.java

@Before
public void setUp() {
    mapper = new ObjectMapper();
    // see https://github.com/json-ld/json-ld.org/issues/76
    mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);

    mapper.registerModule(new SimpleModule() {

        public void setupModule(SetupContext context) {
            super.setupModule(context);

            context.addBeanSerializerModifier(new BeanSerializerModifier() {

                public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                        JsonSerializer<?> serializer) {

                    if (serializer instanceof BeanSerializerBase) {
                        return new JacksonHydraSerializer((BeanSerializerBase) serializer);
                    } else {
                        return serializer;
                    }//w ww  .ja  v  a  2  s . com
                }
            });
        }
    });

}

From source file:com.samlikescode.stackoverflow.questions.q28255878.CustomIndentationModule.java

public CustomIndentationModule() {
    super(NAME);// w w  w.  j a v a  2s  .c o m
    setSerializerModifier(new BeanSerializerModifier() {
        @Override
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {

            return super.modifySerializer(config, beanDesc, serializer);
        }
    });
}

From source file:de.escalon.hypermedia.spring.hydra.JacksonHydraModule.java

public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {

            if (serializer instanceof BeanSerializerBase) {
                JacksonHydraSerializer jacksonHydraSerializer = new JacksonHydraSerializer(
                        (BeanSerializerBase) serializer, proxyUnwrapper);
                return jacksonHydraSerializer;
            } else {
                return serializer;
            }//from w  w w .ja  v a 2s.  c  o  m
        }
    });
}

From source file:tv.arte.resteventapi.core.presentation.serialization.JsonDecorationSerializationModule.java

@Override
public void setupModule(SetupContext context) {
    super.setupModule(context);

    context.addBeanSerializerModifier(new BeanSerializerModifier() {

        @Override/*from  w w w .  ja va 2s  .c  om*/
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (serializer instanceof BeanSerializerBase) {
                return new ExtraFieldSerializer((BeanSerializerBase) serializer);
            } else {
                return super.modifySerializer(config, beanDesc, serializer);
            }
        }
    });

    context.addKeySerializers(new Serializers() {
        @Override
        public JsonSerializer<?> findSerializer(SerializationConfig config, JavaType type,
                BeanDescription beanDesc) {
            return new TransientStringSerializer();
        }

        @Override
        public JsonSerializer<?> findMapSerializer(SerializationConfig config, MapType type,
                BeanDescription beanDesc, JsonSerializer<Object> keySerializer,
                TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
            return null;
        }

        @Override
        public JsonSerializer<?> findMapLikeSerializer(SerializationConfig config, MapLikeType type,
                BeanDescription beanDesc, JsonSerializer<Object> keySerializer,
                TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
            return null;
        }

        @Override
        public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type,
                BeanDescription beanDesc, TypeSerializer elementTypeSerializer,
                JsonSerializer<Object> elementValueSerializer) {
            return null;
        }

        @Override
        public JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config,
                CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer,
                JsonSerializer<Object> elementValueSerializer) {
            return null;
        }

        @Override
        public JsonSerializer<?> findArraySerializer(SerializationConfig config, ArrayType type,
                BeanDescription beanDesc, TypeSerializer elementTypeSerializer,
                JsonSerializer<Object> elementValueSerializer) {
            return null;
        }
    });
}

From source file:org.hyperledger.jackson.SupernodeModule.java

public SupernodeModule(Supplier<Boolean> production) {
    super("Supernode");

    this.formatter = HyperLedgerSettings.getInstance().getTxWireFormatter();

    addDeserializer(MasterPrivateKey.class, new MasterPrivateKeyDeserializer());
    addDeserializer(MasterPublicKey.class, new MasterPublicKeyDeserializer());
    addDeserializer(Script.class, new ScriptDeserializer());
    addDeserializer(UIAddress.class, new AddressDeserializer());
    addDeserializer(Transaction.class, new TransactionDeserializer(formatter));
    addDeserializer(Hash.class, new HashDeserializer());
    addDeserializer(TID.class, new TIDDeserializer());
    addDeserializer(BID.class, new BIDDeserializer());

    addSerializer(MasterPrivateKey.class, new MasterPrivateKeySerializer());
    addSerializer(MasterPublicKey.class, new MasterPublicKeySerializer());
    addSerializer(Script.class, new ScriptSerializer());
    addSerializer(UIAddress.class, new AddressSerializer());
    addSerializer(Transaction.class, new TransactionSerializer());
    addSerializer(Outpoint.class, new OutpointSerializer());
    addSerializer(Hash.class, new HashSerializer());
    addSerializer(TID.class, new TIDSerializer());
    addSerializer(BID.class, new BIDSerializer());

    this.setSerializerModifier(new BeanSerializerModifier() {
        @Override//from   w  w  w .j  ava 2s.co  m
        public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc,
                JsonSerializer<?> serializer) {
            if (serializer instanceof MasterPublicKeySerializer) {
                MasterPublicKeySerializer.class.cast(serializer).setProduction(production.get());
            }
            if (serializer instanceof MasterPrivateKeySerializer) {
                MasterPrivateKeySerializer.class.cast(serializer).setProduction(production.get());
            }

            return serializer;
        }
    });
}