Example usage for com.fasterxml.jackson.databind.ser BeanPropertyWriter serializeAsField

List of usage examples for com.fasterxml.jackson.databind.ser BeanPropertyWriter serializeAsField

Introduction

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

Prototype

public void serializeAsField(Object paramObject, JsonGenerator paramJsonGenerator,
            SerializerProvider paramSerializerProvider) 

Source Link

Usage

From source file:com.github.shyiko.jackson.module.advice.AdvisedBeanSerializer.java

protected void serializeFields(Object bean, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    final BeanPropertyWriter[] props;
    if (_filteredProps != null && provider.getActiveView() != null) {
        props = _filteredProps;/*from w  w w .  java 2 s.  com*/
    } else {
        props = _props;
    }
    int i = 0;
    try {
        for (final int len = props.length; i < len; ++i) {
            BeanPropertyWriter prop = props[i];
            if (prop != null) { // can have nulls in filtered list
                if (!beanSerializerAdvice.intercept(bean, jgen, prop, provider)) {
                    beanSerializerAdvice.before(bean, jgen, prop, provider);
                    prop.serializeAsField(bean, jgen, provider);
                    beanSerializerAdvice.after(bean, jgen, prop, provider);
                }
            }
        }
        if (_anyGetterWriter != null) {
            _anyGetterWriter.getAndSerialize(bean, jgen, provider);
        }
    } catch (Exception e) {
        String name = (i == props.length) ? "[anySetter]" : props[i].getName();
        wrapAndThrow(provider, e, bean, name);
    } catch (StackOverflowError e) {
        /* 04-Sep-2009, tatu: Dealing with this is tricky, since we do not
         *   have many stack frames to spare... just one or two; can't
         *   make many calls.
         */
        JsonMappingException mapE = new JsonMappingException("Infinite recursion (StackOverflowError)", e);
        String name = (i == props.length) ? "[anySetter]" : props[i].getName();
        mapE.prependPath(new JsonMappingException.Reference(bean, name));
        throw mapE;
    }
}

From source file:de.fraunhofer.iosb.ilt.sta.serialize.EntitySerializer.java

protected void serializeFieldTyped(Entity entity, JsonGenerator gen, SerializerProvider serializers,
        BeanDescription beanDescription, BeanPropertyDefinition beanPropertyDefinition,
        TypeSerializer typeSerializer) throws Exception {
    try {// ww w .j  a  v  a 2 s .c o  m
        if (typeSerializer == null) {
            typeSerializer = serializers.findTypeSerializer(
                    serializers.constructType(beanPropertyDefinition.getAccessor().getRawType()));
        }
        if (typeSerializer == null) {
            // if not static type if available use dynamic type if available
            Object propertyValue = beanPropertyDefinition.getAccessor().getValue(entity);
            if (propertyValue != null) {
                typeSerializer = serializers
                        .findTypeSerializer(serializers.constructType(propertyValue.getClass()));
            }
        }

        BeanPropertyWriter bpw = new BeanPropertyWriter(beanPropertyDefinition,
                beanPropertyDefinition.getAccessor(), beanDescription.getClassAnnotations(),
                beanPropertyDefinition.getAccessor().getType(), null, // will be searched automatically
                typeSerializer, // will not be searched automatically
                beanPropertyDefinition.getAccessor().getType(),
                suppressNulls(serializers.getConfig().getDefaultPropertyInclusion()),
                suppressableValue(serializers.getConfig().getDefaultPropertyInclusion()));
        bpw.serializeAsField(entity, gen, serializers);
    } catch (JsonMappingException ex) {
        Logger.getLogger(EntitySerializer.class.getName()).log(Level.SEVERE, null, ex);
    }
}