com.fasterxml.jackson.databind.ser.impl.AttributePropertyWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
package com.fasterxml.jackson.databind.ser.impl;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.cfg.MapperConfig;
import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
import com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter;
import com.fasterxml.jackson.databind.util.Annotations;
/**
* {@link VirtualBeanPropertyWriter} implementation used for
* {@link com.fasterxml.jackson.databind.annotation.JsonAppend},
* to serialize properties backed-by dynamically assignable attribute
* values.
*
* @since 2.5
*/
public class AttributePropertyWriter
extends VirtualBeanPropertyWriter
{
private static final long serialVersionUID = 1;
protected final String _attrName;
/*
/**********************************************************
/* Life-cycle
/**********************************************************
*/
protected AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef,
Annotations contextAnnotations, JavaType declaredType) {
this(attrName, propDef, contextAnnotations, declaredType, propDef.findInclusion());
}
protected AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef,
Annotations contextAnnotations, JavaType declaredType,
JsonInclude.Value inclusion)
{
super(propDef, contextAnnotations, declaredType,
/* value serializer */ null, /* type serializer */ null, /* ser type */ null,
inclusion,
// 10-Oct-2016, tatu: Could enable per-view settings too in future
null);
_attrName = attrName;
}
public static AttributePropertyWriter construct(String attrName,
BeanPropertyDefinition propDef,
Annotations contextAnnotations,
JavaType declaredType)
{
return new AttributePropertyWriter(attrName, propDef,
contextAnnotations, declaredType);
}
protected AttributePropertyWriter(AttributePropertyWriter base) {
super(base);
_attrName = base._attrName;
}
/**
* Since this method should typically not be called on this sub-type,
* default implementation simply throws an {@link IllegalStateException}.
*/
@Override
public VirtualBeanPropertyWriter withConfig(MapperConfig> config,
AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type) {
throw new IllegalStateException("Should not be called on this type");
}
/*
/**********************************************************
/* Overrides for actual serialization, value access
/**********************************************************
*/
@Override
protected Object value(Object bean, JsonGenerator jgen, SerializerProvider prov) throws Exception {
return prov.getAttribute(_attrName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy