Class OptimizedBeanPropertyWriter<T extends OptimizedBeanPropertyWriter<T>>
- java.lang.Object
-
- com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
-
- com.fasterxml.jackson.databind.ser.PropertyWriter
-
- com.fasterxml.jackson.databind.ser.BeanPropertyWriter
-
- com.fasterxml.jackson.module.afterburner.ser.OptimizedBeanPropertyWriter<T>
-
- All Implemented Interfaces:
com.fasterxml.jackson.databind.BeanProperty
,com.fasterxml.jackson.databind.util.Named
,java.io.Serializable
- Direct Known Subclasses:
BooleanFieldPropertyWriter
,BooleanMethodPropertyWriter
,IntFieldPropertyWriter
,IntMethodPropertyWriter
,LongFieldPropertyWriter
,LongMethodPropertyWriter
,ObjectFieldPropertyWriter
,ObjectMethodPropertyWriter
,StringFieldPropertyWriter
,StringMethodPropertyWriter
abstract class OptimizedBeanPropertyWriter<T extends OptimizedBeanPropertyWriter<T>> extends com.fasterxml.jackson.databind.ser.BeanPropertyWriter
Intermediate base class that is used for concrete per-type implementations
-
-
Field Summary
Fields Modifier and Type Field Description protected com.fasterxml.jackson.core.SerializableString
_fastName
Locally stored version of efficiently serializable name.protected BeanPropertyAccessor
_propertyAccessor
protected int
_propertyIndex
protected boolean
broken
protected com.fasterxml.jackson.databind.ser.BeanPropertyWriter
fallbackWriter
-
Fields inherited from class com.fasterxml.jackson.databind.ser.BeanPropertyWriter
_accessorMethod, _cfgSerializationType, _contextAnnotations, _declaredType, _dynamicSerializers, _field, _includeInViews, _internalSettings, _member, _name, _nonTrivialBaseType, _nullSerializer, _serializer, _suppressableValue, _suppressNulls, _typeSerializer, _wrapperName, MARKER_FOR_EMPTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
OptimizedBeanPropertyWriter(com.fasterxml.jackson.databind.ser.BeanPropertyWriter src, BeanPropertyAccessor propertyAccessor, int propertyIndex, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
_handleProblem(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider prov, java.lang.Throwable t, boolean element)
protected void
_reportProblem(java.lang.Object bean, java.lang.Throwable e)
void
assignNullSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> nullSer)
void
assignSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
void
assignTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
protected boolean
isDefaultSerializer(com.fasterxml.jackson.databind.JsonSerializer<?> ser)
Helper method used to check whether given serializer is the default serializer implementation: this is necessary to avoid overriding other kinds of deserializers.abstract void
serializeAsElement(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider prov)
abstract void
serializeAsField(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider prov)
private com.fasterxml.jackson.databind.ser.BeanPropertyWriter
unwrapFallbackWriter(com.fasterxml.jackson.databind.ser.BeanPropertyWriter srcIn)
abstract T
withAccessor(BeanPropertyAccessor acc)
abstract com.fasterxml.jackson.databind.ser.BeanPropertyWriter
withSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
-
Methods inherited from class com.fasterxml.jackson.databind.ser.BeanPropertyWriter
_depositSchemaProperty, _findAndAddDynamic, _handleSelfReference, _new, depositSchemaProperty, depositSchemaProperty, fixAccess, 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
-
-
-
-
Field Detail
-
_propertyAccessor
protected final BeanPropertyAccessor _propertyAccessor
-
_fastName
protected final com.fasterxml.jackson.core.SerializableString _fastName
Locally stored version of efficiently serializable name. Used to work around earlier problems with typing between interface, implementation- Since:
- 2.5
-
_propertyIndex
protected final int _propertyIndex
-
fallbackWriter
protected final com.fasterxml.jackson.databind.ser.BeanPropertyWriter fallbackWriter
-
broken
protected boolean broken
-
-
Constructor Detail
-
OptimizedBeanPropertyWriter
protected OptimizedBeanPropertyWriter(com.fasterxml.jackson.databind.ser.BeanPropertyWriter src, BeanPropertyAccessor propertyAccessor, int propertyIndex, com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
-
-
Method Detail
-
unwrapFallbackWriter
private com.fasterxml.jackson.databind.ser.BeanPropertyWriter unwrapFallbackWriter(com.fasterxml.jackson.databind.ser.BeanPropertyWriter srcIn)
-
assignTypeSerializer
public void assignTypeSerializer(com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer)
- Overrides:
assignTypeSerializer
in classcom.fasterxml.jackson.databind.ser.BeanPropertyWriter
-
assignSerializer
public void assignSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
- Overrides:
assignSerializer
in classcom.fasterxml.jackson.databind.ser.BeanPropertyWriter
-
assignNullSerializer
public void assignNullSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> nullSer)
- Overrides:
assignNullSerializer
in classcom.fasterxml.jackson.databind.ser.BeanPropertyWriter
-
withAccessor
public abstract T withAccessor(BeanPropertyAccessor acc)
-
withSerializer
public abstract com.fasterxml.jackson.databind.ser.BeanPropertyWriter withSerializer(com.fasterxml.jackson.databind.JsonSerializer<java.lang.Object> ser)
-
serializeAsField
public abstract void serializeAsField(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider prov) throws java.lang.Exception
- Overrides:
serializeAsField
in classcom.fasterxml.jackson.databind.ser.BeanPropertyWriter
- Throws:
java.lang.Exception
-
serializeAsElement
public abstract void serializeAsElement(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, com.fasterxml.jackson.databind.SerializerProvider prov) throws java.lang.Exception
- Overrides:
serializeAsElement
in classcom.fasterxml.jackson.databind.ser.BeanPropertyWriter
- Throws:
java.lang.Exception
-
_handleProblem
protected void _handleProblem(java.lang.Object bean, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider prov, java.lang.Throwable t, boolean element) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_reportProblem
protected void _reportProblem(java.lang.Object bean, java.lang.Throwable e)
-
isDefaultSerializer
protected boolean isDefaultSerializer(com.fasterxml.jackson.databind.JsonSerializer<?> ser)
Helper method used to check whether given serializer is the default serializer implementation: this is necessary to avoid overriding other kinds of deserializers.
-
-