![JAR search and dependency download from the Maven repository](/logo.png)
org.codehaus.jackson.map.ser.PropertyBuilder Maven / Gradle / Ivy
Go to download
Data Mapper package is a high-performance data binding package
built on Jackson JSON processor
package org.codehaus.jackson.map.ser;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.TypeSerializer;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
import org.codehaus.jackson.map.introspect.Annotated;
import org.codehaus.jackson.map.introspect.AnnotatedField;
import org.codehaus.jackson.map.introspect.AnnotatedMember;
import org.codehaus.jackson.map.introspect.AnnotatedMethod;
import org.codehaus.jackson.map.introspect.BasicBeanDescription;
import org.codehaus.jackson.map.type.TypeFactory;
import org.codehaus.jackson.type.JavaType;
/**
* Helper class for {@link BeanSerializerFactory} that is used to
* construct {@link BeanPropertyWriter} instances. Can be sub-classed
* to change behavior.
*/
public class PropertyBuilder
{
final SerializationConfig _config;
final BasicBeanDescription _beanDesc;
final JsonSerialize.Inclusion _outputProps;
final AnnotationIntrospector _annotationIntrospector;
/**
* If a property has serialization inclusion value of
* {@link Inclusion#ALWAYS}, we need to know the default
* value of the bean, to know if property value equals default
* one.
*/
protected Object _defaultBean;
public PropertyBuilder(SerializationConfig config, BasicBeanDescription beanDesc)
{
_config = config;
_beanDesc = beanDesc;
_outputProps = beanDesc.findSerializationInclusion(config.getSerializationInclusion());
_annotationIntrospector = _config.getAnnotationIntrospector();
}
/*
/************************************************
/* Public API
/************************************************
*/
/**
* @param contentTypeSer Optional explicit type information serializer
* to use for contained values (only used for properties that are
* of container type)
*/
protected BeanPropertyWriter buildProperty(String name, JsonSerializer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy