public abstract class VirtualBeanPropertyWriter extends BeanPropertyWriter implements Serializable
BeanPropertyWriter
implementation used with
JsonAppend
to add "virtual" properties in addition to regular ones.AttributePropertyWriter
,
Serialized FormBeanProperty.Std
_accessorMethod, _cfgSerializationType, _contextAnnotations, _declaredType, _dynamicSerializers, _field, _includeInViews, _internalSettings, _member, _name, _nonTrivialBaseType, _nullSerializer, _serializer, _suppressableValue, _suppressNulls, _typeSerializer, _wrapperName, MARKER_FOR_EMPTY
_format, _metadata
EMPTY_FORMAT, EMPTY_INCLUDE
Modifier | Constructor and Description |
---|---|
protected |
VirtualBeanPropertyWriter()
Constructor that may be used by sub-classes for constructing a "blue-print" instance;
one that will only become (or create) actual usable instance when its
withConfig(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, com.fasterxml.jackson.databind.introspect.AnnotatedClass, com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition, com.fasterxml.jackson.databind.JavaType) method is called. |
protected |
VirtualBeanPropertyWriter(BeanPropertyDefinition propDef,
Annotations contextAnnotations,
JavaType declaredType)
Constructor used by most sub-types.
|
protected |
VirtualBeanPropertyWriter(BeanPropertyDefinition propDef,
Annotations contextAnnotations,
JavaType declaredType,
JsonSerializer<?> ser,
TypeSerializer typeSer,
JavaType serType,
JsonInclude.Value inclusion)
Pass-through constructor that may be used by sub-classes that
want full control over implementation.
|
protected |
VirtualBeanPropertyWriter(VirtualBeanPropertyWriter base) |
protected |
VirtualBeanPropertyWriter(VirtualBeanPropertyWriter base,
PropertyName name) |
Modifier and Type | Method and Description |
---|---|
protected static Object |
_suppressableValue(JsonInclude.Value inclusion) |
protected static boolean |
_suppressNulls(JsonInclude.Value inclusion) |
boolean |
isVirtual()
Accessor for checking whether there is an actual physical property
behind this property abstraction or not.
|
void |
serializeAsElement(Object bean,
JsonGenerator gen,
SerializerProvider prov)
Alternative to
BeanPropertyWriter.serializeAsField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider) that is used when a POJO
is serialized as JSON Array; the difference is that no field names
are written. |
void |
serializeAsField(Object bean,
JsonGenerator gen,
SerializerProvider prov)
Method called to access property that this bean stands for, from
within given bean, and to serialize it as a JSON Object field
using appropriate serializer.
|
protected abstract Object |
value(Object bean,
JsonGenerator gen,
SerializerProvider prov)
Method called to figure out the value to serialize.
|
abstract VirtualBeanPropertyWriter |
withConfig(MapperConfig<?> config,
AnnotatedClass declaringClass,
BeanPropertyDefinition propDef,
JavaType type)
Contextualization method called on a newly constructed virtual bean property.
|
_depositSchemaProperty, _findAndAddDynamic, _handleSelfReference, _new, assignNullSerializer, assignSerializer, assignTypeSerializer, depositSchemaProperty, depositSchemaProperty, get, getAnnotation, getContextAnnotation, getFullName, getGenericPropertyType, getInternalSetting, getMember, getName, getPropertyType, getRawSerializationType, getSerializationType, getSerializedName, getSerializer, getType, getTypeSerializer, getViews, getWrapperName, hasNullSerializer, hasSerializer, isUnwrapping, removeInternalSetting, rename, serializeAsOmittedField, serializeAsPlaceholder, setInternalSetting, setNonTrivialBaseType, toString, unwrappingWriter, willSuppressNulls, wouldConflictWithName
findAnnotation
findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired
protected VirtualBeanPropertyWriter(BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)
protected VirtualBeanPropertyWriter()
withConfig(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, com.fasterxml.jackson.databind.introspect.AnnotatedClass, com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition, com.fasterxml.jackson.databind.JavaType)
method is called.protected VirtualBeanPropertyWriter(BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, JsonInclude.Value inclusion)
protected VirtualBeanPropertyWriter(VirtualBeanPropertyWriter base)
protected VirtualBeanPropertyWriter(VirtualBeanPropertyWriter base, PropertyName name)
protected static boolean _suppressNulls(JsonInclude.Value inclusion)
protected static Object _suppressableValue(JsonInclude.Value inclusion)
public boolean isVirtual()
BeanProperty
isVirtual
in interface BeanProperty
isVirtual
in class ConcreteBeanPropertyBase
protected abstract Object value(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception
AttributePropertyWriter
)
this may be one of few methods to define, although more advanced implementations
may choose to not even use this method (by overriding serializeAsField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)
)
and define a bogus implementation.Exception
public abstract VirtualBeanPropertyWriter withConfig(MapperConfig<?> config, AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type)
config
- Currenct configuration; guaranteed to be SerializationConfig
(just not typed since caller does not have dependency to serialization-specific types)declaringClass
- Class that contains this property writerpropDef
- Nominal property definition to usetype
- Declared type for the propertypublic void serializeAsField(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception
BeanPropertyWriter
serializeAsField
in class BeanPropertyWriter
Exception
public void serializeAsElement(Object bean, JsonGenerator gen, SerializerProvider prov) throws Exception
BeanPropertyWriter
BeanPropertyWriter.serializeAsField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)
that is used when a POJO
is serialized as JSON Array; the difference is that no field names
are written.serializeAsElement
in class BeanPropertyWriter
Exception
Copyright © 2008–2016 FasterXML. All rights reserved.