com.fasterxml.jackson.databind.ser.impl

## Class AttributePropertyWriter

- java.lang.Object
- - com.fasterxml.jackson.databind.ser.PropertyWriter
  - - com.fasterxml.jackson.databind.ser.BeanPropertyWriter
    - - com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter
      - - com.fasterxml.jackson.databind.ser.impl.AttributePropertyWriter

All Implemented Interfaces:
  BeanProperty, Named

    public class AttributePropertyWriter
    extends VirtualBeanPropertyWriter

`VirtualBeanPropertyWriter` implementation used for `JsonAppend`, to serialize properties backed-by dynamically assignable attribute values.

Since:
  2.5

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.BeanProperty

`BeanProperty.Std`

### Field Summary

Fields
`protected String` `_attrName`

### Fields inherited from class com.fasterxml.jackson.databind.ser.BeanPropertyWriter

`_accessorMethod, _cfgSerializationType, _contextAnnotations, _declaredType, _dynamicSerializers, _field, _includeInViews, _internalSettings, _member, _metadata, _name, _nonTrivialBaseType, _nullSerializer, _serializer, _suppressableValue, _suppressNulls, _typeSerializer, _wrapperName, MARKER_FOR_EMPTY`

### Constructor Summary

Constructors
`protected` `AttributePropertyWriter(AttributePropertyWriter base)`
`protected` `AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)`
`protected` `AttributePropertyWriter(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType, com.fasterxml.jackson.annotation.JsonInclude.Include inclusion)`

### Method Summary

Methods
`static AttributePropertyWriter` `construct(String attrName, BeanPropertyDefinition propDef, Annotations contextAnnotations, JavaType declaredType)`
`protected Object` `value(Object bean, com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider prov)` Method called to figure out the value to serialize.
`VirtualBeanPropertyWriter` `withConfig(MapperConfig<?> config, AnnotatedClass declaringClass, BeanPropertyDefinition propDef, JavaType type)` Since this method should typically not be called on this sub-type, default implementation simply throws an `IllegalStateException`.

### Methods inherited from class com.fasterxml.jackson.databind.ser.VirtualBeanPropertyWriter

`_suppressableValue, _suppressNulls, getGenericPropertyType, getPropertyType, isVirtual, serializeAsElement, serializeAsField`

### Methods inherited from class com.fasterxml.jackson.databind.ser.BeanPropertyWriter

`_depositSchemaProperty, _findAndAddDynamic, _handleSelfReference, assignNullSerializer, assignSerializer, depositSchemaProperty, depositSchemaProperty, get, getAnnotation, getContextAnnotation, getFullName, getInternalSetting, getMember, getMetadata, getName, getRawSerializationType, getSerializationType, getSerializedName, getSerializer, getType, getViews, getWrapperName, hasNullSerializer, hasSerializer, isRequired, isUnwrapping, removeInternalSetting, rename, serializeAsOmittedField, serializeAsPlaceholder, setInternalSetting, setNonTrivialBaseType, toString, unwrappingWriter, willSuppressNulls`

### Methods inherited from class com.fasterxml.jackson.databind.ser.PropertyWriter

`findAnnotation`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### _attrName

    protected final String _attrName

### Constructor Detail

#### AttributePropertyWriter

    protected AttributePropertyWriter(String attrName,
                           BeanPropertyDefinition propDef,
                           Annotations contextAnnotations,
                           JavaType declaredType)

#### AttributePropertyWriter

    protected AttributePropertyWriter(String attrName,
                           BeanPropertyDefinition propDef,
                           Annotations contextAnnotations,
                           JavaType declaredType,
                           com.fasterxml.jackson.annotation.JsonInclude.Include inclusion)

#### AttributePropertyWriter

    protected AttributePropertyWriter(AttributePropertyWriter base)

### Method Detail

#### construct

    public static AttributePropertyWriter construct(String attrName,
                                    BeanPropertyDefinition propDef,
                                    Annotations contextAnnotations,
                                    JavaType declaredType)

#### withConfig

    public VirtualBeanPropertyWriter withConfig(MapperConfig<?> config,
                                       AnnotatedClass declaringClass,
                                       BeanPropertyDefinition propDef,
                                       JavaType type)

Since this method should typically not be called on this sub-type, default implementation simply throws an `IllegalStateException`.

Specified by:
  `withConfig` in class `VirtualBeanPropertyWriter`
Parameters:
  `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 writer
  `propDef` - Nominal property definition to use
  `type` - Declared type for the property

#### value

    protected Object value(Object bean,
               com.fasterxml.jackson.core.JsonGenerator jgen,
               SerializerProvider prov)
                    throws Exception

Description copied from class: `VirtualBeanPropertyWriter`
Method called to figure out the value to serialize. For simple sub-types (such as `AttributePropertyWriter`) this may be one of few methods to define, although more advanced implementations may choose to not even use this method (by overriding `VirtualBeanPropertyWriter.serializeAsField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)`) and define a bogus implementation.

Specified by:
  `value` in class `VirtualBeanPropertyWriter`
Throws:
  `Exception`