Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
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.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.AnnotatedMethod;
import org.codehaus.jackson.map.introspect.BasicBeanDescription;
/**
* 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
//////////////////////////////////////////////////
*/
/**
* Factory method for constructor a {@link BeanPropertyWriter}
* that uses specified method as the accessors.
*
* @param defaultUseStaticTyping Whether default typing mode is
* 'static' or not (if not, it's 'dynamic'); can be overridden
* by annotation related to property itself
*/
public BeanPropertyWriter buildProperty(String name, JsonSerializer