com.groupbyinc.common.jackson.module.afterburner.ser.OptimizedBeanPropertyWriter Maven / Gradle / Ivy
package com.fasterxml.jackson.module.afterburner.ser;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.SerializableString;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.util.ClassUtil;
/**
* Intermediate base class that is used for concrete
* per-type implementations
*/
@SuppressWarnings("serial")
abstract class OptimizedBeanPropertyWriter>
extends BeanPropertyWriter
{
protected final BeanPropertyAccessor _propertyAccessor;
/**
* Locally stored version of efficiently serializable name.
* Used to work around earlier problems with typing between
* interface, implementation
*
* @since 2.5
*/
protected final SerializableString _fastName;
protected final int _propertyIndex;
protected final BeanPropertyWriter fallbackWriter;
// Not volatile to prevent overhead, worst case is we trip the exception a few extra times
protected boolean broken = false;
protected OptimizedBeanPropertyWriter(BeanPropertyWriter src,
BeanPropertyAccessor propertyAccessor, int propertyIndex,
JsonSerializer
© 2015 - 2024 Weber Informatics LLC | Privacy Policy