com.fasterxml.jackson.databind.util

## Class SimpleBeanPropertyDefinition

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition
  - - com.fasterxml.jackson.databind.util.SimpleBeanPropertyDefinition

All Implemented Interfaces:
  Named

    public class SimpleBeanPropertyDefinition
    extends BeanPropertyDefinition

Simple immutable `BeanPropertyDefinition` implementation that can be wrapped around a `AnnotatedMember` that is a simple accessor (getter) or mutator (setter, constructor parameter) (or both, for fields).

### Field Summary

Fields
`protected AnnotationIntrospector` `_introspector`
`protected AnnotatedMember` `_member` Member that defines logical property.
`protected String` `_name`

### Constructor Summary

Constructors
Constructor and Description
`SimpleBeanPropertyDefinition(AnnotatedMember member)` Deprecated.
`SimpleBeanPropertyDefinition(AnnotatedMember member, String name)` Deprecated.

### Method Summary

Methods
`static SimpleBeanPropertyDefinition` `construct(MapperConfig<?> config, AnnotatedMember member)`
`static SimpleBeanPropertyDefinition` `construct(MapperConfig<?> config, AnnotatedMember member, String name)`
`AnnotatedMember` `getAccessor()` Method used to find accessor (getter, field to access) to use for accessing value of the property.
`AnnotatedParameter` `getConstructorParameter()`
`AnnotatedField` `getField()`
`PropertyName` `getFullName()`
`AnnotatedMethod` `getGetter()`
`String` `getInternalName()` Accessor that can be used to determine implicit name from underlying element(s) before possible renaming.
`PropertyMetadata` `getMetadata()` We will indicate that property is optional, since there is nothing to indicate whether it might be required.
`AnnotatedMember` `getMutator()` Method used to find mutator (constructor parameter, setter, field) to use for changing value of the property.
`String` `getName()` Accessor for name used for external representation (in JSON).
`AnnotatedMember` `getNonConstructorMutator()`
`AnnotatedMember` `getPrimaryMember()` Method used to find the property member (getter, setter, field) that has the highest precedence in current context (getter method when serializing, if available, and so forth), if any.
`AnnotatedMethod` `getSetter()`
`PropertyName` `getWrapperName()` Accessor for finding wrapper name to use for property (if any).
`boolean` `hasConstructorParameter()`
`boolean` `hasField()`
`boolean` `hasGetter()`
`boolean` `hasSetter()`
`boolean` `isExplicitlyIncluded()` Accessor that can be called to check whether property was included due to an explicit marker (usually annotation), or just by naming convention.
`SimpleBeanPropertyDefinition` `withName(PropertyName newName)` Method that can be used to create a definition with same settings as this one, but with different (external) name; that is, one for which `BeanPropertyDefinition.getName()` would return `newName`.
`SimpleBeanPropertyDefinition` `withName(String newName)` Deprecated.
`SimpleBeanPropertyDefinition` `withSimpleName(String newName)` Alternate "mutant factory" that will only change simple name, but leave other optional parts (like namespace) as is.

### Methods inherited from class com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition

`couldDeserialize, couldSerialize, findObjectIdInfo, findReferenceType, findViews, isRequired, isTypeId`

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

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

### Field Detail

#### _introspector

    protected final AnnotationIntrospector _introspector

#### _member

    protected final AnnotatedMember _member

Member that defines logical property. Assumption is that it should be a 'simple' accessor; meaning a zero-argument getter, single-argument setter or constructor parameter.

#### _name

    protected final String _name

### Constructor Detail

#### SimpleBeanPropertyDefinition

    @Deprecated
    public SimpleBeanPropertyDefinition(AnnotatedMember member)

Deprecated.

Since:
  2.2 Use `construct(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, com.fasterxml.jackson.databind.introspect.AnnotatedMember)` instead

#### SimpleBeanPropertyDefinition

    @Deprecated
    public SimpleBeanPropertyDefinition(AnnotatedMember member,
                                           String name)

Deprecated.

Since:
  2.2 Use `construct(com.fasterxml.jackson.databind.cfg.MapperConfig<?>, com.fasterxml.jackson.databind.introspect.AnnotatedMember)` instead

### Method Detail

#### construct

    public static SimpleBeanPropertyDefinition construct(MapperConfig<?> config,
                                         AnnotatedMember member)

Since:
  2.2

#### construct

    public static SimpleBeanPropertyDefinition construct(MapperConfig<?> config,
                                         AnnotatedMember member,
                                         String name)

Since:
  2.2

#### withName

    @Deprecated
    public SimpleBeanPropertyDefinition withName(String newName)

Deprecated.

Overrides:
  `withName` in class `BeanPropertyDefinition`

#### withSimpleName

    public SimpleBeanPropertyDefinition withSimpleName(String newName)

Description copied from class: `BeanPropertyDefinition`
Alternate "mutant factory" that will only change simple name, but leave other optional parts (like namespace) as is.

Specified by:
  `withSimpleName` in class `BeanPropertyDefinition`

#### withName

    public SimpleBeanPropertyDefinition withName(PropertyName newName)

Description copied from class: `BeanPropertyDefinition`
Method that can be used to create a definition with same settings as this one, but with different (external) name; that is, one for which `BeanPropertyDefinition.getName()` would return `newName`.

Specified by:
  `withName` in class `BeanPropertyDefinition`

#### getName

    public String getName()

Description copied from class: `BeanPropertyDefinition`
Accessor for name used for external representation (in JSON).

Specified by:
  `getName` in interface `Named`
Specified by:
  `getName` in class `BeanPropertyDefinition`

#### getFullName

    public PropertyName getFullName()

Specified by:
  `getFullName` in class `BeanPropertyDefinition`

#### getInternalName

    public String getInternalName()

Description copied from class: `BeanPropertyDefinition`
Accessor that can be used to determine implicit name from underlying element(s) before possible renaming. This is the "internal" name derived from accessor ("x" from "getX"), and is not based on annotations or naming strategy.

Specified by:
  `getInternalName` in class `BeanPropertyDefinition`

#### getWrapperName

    public PropertyName getWrapperName()

Description copied from class: `BeanPropertyDefinition`
Accessor for finding wrapper name to use for property (if any).

Specified by:
  `getWrapperName` in class `BeanPropertyDefinition`

#### isExplicitlyIncluded

    public boolean isExplicitlyIncluded()

Description copied from class: `BeanPropertyDefinition`
Accessor that can be called to check whether property was included due to an explicit marker (usually annotation), or just by naming convention.

Specified by:
  `isExplicitlyIncluded` in class `BeanPropertyDefinition`
Returns:
  True if property was explicitly included (usually by having one of components being annotated); false if inclusion was purely due to naming or visibility definitions (that is, implicit)

#### getMetadata

    public PropertyMetadata getMetadata()

We will indicate that property is optional, since there is nothing to indicate whether it might be required.

Specified by:
  `getMetadata` in class `BeanPropertyDefinition`

#### hasGetter

    public boolean hasGetter()

Specified by:
  `hasGetter` in class `BeanPropertyDefinition`

#### hasSetter

    public boolean hasSetter()

Specified by:
  `hasSetter` in class `BeanPropertyDefinition`

#### hasField

    public boolean hasField()

Specified by:
  `hasField` in class `BeanPropertyDefinition`

#### hasConstructorParameter

    public boolean hasConstructorParameter()

Specified by:
  `hasConstructorParameter` in class `BeanPropertyDefinition`

#### getGetter

    public AnnotatedMethod getGetter()

Specified by:
  `getGetter` in class `BeanPropertyDefinition`

#### getSetter

    public AnnotatedMethod getSetter()

Specified by:
  `getSetter` in class `BeanPropertyDefinition`

#### getField

    public AnnotatedField getField()

Specified by:
  `getField` in class `BeanPropertyDefinition`

#### getConstructorParameter

    public AnnotatedParameter getConstructorParameter()

Specified by:
  `getConstructorParameter` in class `BeanPropertyDefinition`

#### getAccessor

    public AnnotatedMember getAccessor()

Method used to find accessor (getter, field to access) to use for accessing value of the property. Null if no such member exists.

Specified by:
  `getAccessor` in class `BeanPropertyDefinition`

#### getMutator

    public AnnotatedMember getMutator()

Method used to find mutator (constructor parameter, setter, field) to use for changing value of the property. Null if no such member exists.

Specified by:
  `getMutator` in class `BeanPropertyDefinition`

#### getNonConstructorMutator

    public AnnotatedMember getNonConstructorMutator()

Specified by:
  `getNonConstructorMutator` in class `BeanPropertyDefinition`

#### getPrimaryMember

    public AnnotatedMember getPrimaryMember()

Description copied from class: `BeanPropertyDefinition`
Method used to find the property member (getter, setter, field) that has the highest precedence in current context (getter method when serializing, if available, and so forth), if any.

Overrides:
  `getPrimaryMember` in class `BeanPropertyDefinition`