## Uses of Class
com.fasterxml.jackson.databind.introspect.AnnotatedMethod

Packages that use AnnotatedMethod
com.fasterxml.jackson.databind: Basic data binding (mapping) functionality that allows for reading JSON content into Java Objects (POJOs) and JSON Trees (`JsonNode`), as well as writing Java Objects and trees as JSON.
com.fasterxml.jackson.databind.deser: Contains implementation classes of deserialization part of data binding.
com.fasterxml.jackson.databind.deser.impl: Contains those implementation classes of deserialization part of data binding that are not considered part of public or semi-public interfaces.
com.fasterxml.jackson.databind.deser.std: Contains public standard implementations of abstraction that Jackson uses.
com.fasterxml.jackson.databind.introspect: Functionality needed for Bean introspection, required for detecting accessors and mutators for Beans, as well as locating and handling method annotations.
com.fasterxml.jackson.databind.util: Utility classes for Mapper package.

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind

Methods in com.fasterxml.jackson.databind that return AnnotatedMethod
`AnnotatedMethod` BeanDescription.`findAnySetter()` Deprecated. Since 2.9: use `BeanDescription.findAnySetterAccessor()` instead
`abstract AnnotatedMethod` BeanDescription.`findJsonValueMethod()` Deprecated.
`abstract AnnotatedMethod` BeanDescription.`findMethod(String name, Class<?>[] paramTypes)`
`AnnotatedMethod` AnnotationIntrospector.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)` Method called in cases where a class has two methods eligible to be used for the same logical property, and default logic is not enough to figure out clear precedence.

Methods in com.fasterxml.jackson.databind that return types with arguments of type AnnotatedMethod
`abstract List<AnnotatedMethod>` BeanDescription.`getFactoryMethods()` Helper method that will check all static methods of the bean class that seem like factory methods eligible to be used as Creators.
`abstract List<AnnotatedAndMetadata<AnnotatedMethod,com.fasterxml.jackson.annotation.JsonCreator.Mode>>` BeanDescription.`getFactoryMethodsWithMode()` Method similar to `BeanDescription.getFactoryMethods()` but will return `JsonCreator.Mode` metadata along with qualifying factory method candidates.

Methods in com.fasterxml.jackson.databind with parameters of type AnnotatedMethod
`boolean` AnnotationIntrospector.`hasAnyGetterAnnotation(AnnotatedMethod am)` Deprecated. Since 2.9 Use `AnnotationIntrospector.hasAnyGetter(com.fasterxml.jackson.databind.introspect.Annotated)` instead
`boolean` AnnotationIntrospector.`hasAnySetterAnnotation(AnnotatedMethod am)` Deprecated. Since 2.9 use `AnnotationIntrospector.hasAnySetter(com.fasterxml.jackson.databind.introspect.Annotated)` instead.
`boolean` AnnotationIntrospector.`hasAsValueAnnotation(AnnotatedMethod am)` Deprecated. Since 2.9 Use `AnnotationIntrospector.hasAsValue(Annotated)` instead.
`String` PropertyNamingStrategy.`nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)` Method called to find external name (name used in JSON) for given logical POJO property, as defined by given getter method; typically called when building a serializer.
`String` PropertyNamingStrategy.PropertyNamingStrategyBase.`nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)` Deprecated.
`String` PropertyNamingStrategies.NamingBase.`nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)`
`String` PropertyNamingStrategy.`nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)` Method called to find external name (name used in JSON) for given logical POJO property, as defined by given setter method; typically called when building a deserializer (but not necessarily only then).
`String` PropertyNamingStrategy.PropertyNamingStrategyBase.`nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)` Deprecated.
`String` PropertyNamingStrategies.NamingBase.`nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)`
`AnnotatedMethod` AnnotationIntrospector.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)` Method called in cases where a class has two methods eligible to be used for the same logical property, and default logic is not enough to figure out clear precedence.

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind.deser

Fields in com.fasterxml.jackson.databind.deser declared as AnnotatedMethod
`protected AnnotatedMethod` BeanDeserializerBuilder.`_buildMethod` When creating Builder-based deserializers, this indicates method to call on builder to finalize value.
`protected AnnotatedMethod` BuilderBasedDeserializer.`_buildMethod`

Methods in com.fasterxml.jackson.databind.deser that return AnnotatedMethod
`protected AnnotatedMethod` BasicDeserializerFactory.`_findJsonValueFor(DeserializationConfig config, JavaType enumType)` Deprecated. since 2.8 call `findJsonValueMethod` on `BeanDescription` instead
`AnnotatedMethod` BeanDeserializerBuilder.`getBuildMethod()`

Methods in com.fasterxml.jackson.databind.deser with parameters of type AnnotatedMethod
`void` BeanDeserializerBuilder.`setPOJOBuilder(AnnotatedMethod buildMethod, JsonPOJOBuilder.Value config)`

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind.deser.impl

Fields in com.fasterxml.jackson.databind.deser.impl declared as AnnotatedMethod
`protected AnnotatedMethod` SetterlessProperty.`_annotated`
`protected AnnotatedMethod` MethodProperty.`_annotated`
`protected AnnotatedMethod` BeanAsArrayBuilderDeserializer.`_buildMethod`

Constructors in com.fasterxml.jackson.databind.deser.impl with parameters of type AnnotatedMethod
Constructor and Description
`BeanAsArrayBuilderDeserializer(BeanDeserializerBase delegate, JavaType targetType, SettableBeanProperty[] ordered, AnnotatedMethod buildMethod)` Main constructor used both for creating new instances (by `BeanDeserializer.asArrayDeserializer()`) and for creating copies with different delegate.
`MethodProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations, AnnotatedMethod method)`
`SetterlessProperty(BeanPropertyDefinition propDef, JavaType type, TypeDeserializer typeDeser, Annotations contextAnnotations, AnnotatedMethod method)`

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind.deser.std

Methods in com.fasterxml.jackson.databind.deser.std with parameters of type AnnotatedMethod
`static KeyDeserializer` StdKeyDeserializers.`constructEnumKeyDeserializer(EnumResolver enumResolver, AnnotatedMethod factory)`
`static JsonDeserializer<?>` EnumDeserializer.`deserializerForCreator(DeserializationConfig config, Class<?> enumClass, AnnotatedMethod factory)` Deprecated. Since 2.8
`static JsonDeserializer<?>` EnumDeserializer.`deserializerForCreator(DeserializationConfig config, Class<?> enumClass, AnnotatedMethod factory, ValueInstantiator valueInstantiator, SettableBeanProperty[] creatorProps)` Factory method used when Enum instances are to be deserialized using a creator (static factory method)
`static JsonDeserializer<?>` EnumDeserializer.`deserializerForNoArgsCreator(DeserializationConfig config, Class<?> enumClass, AnnotatedMethod factory)` Factory method used when Enum instances are to be deserialized using a zero-/no-args factory method

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind.introspect

Fields in com.fasterxml.jackson.databind.introspect with type parameters of type AnnotatedMethod
`protected LinkedList<AnnotatedMethod>` POJOPropertiesCollector.`_anySetters`
`protected POJOPropertyBuilder.Linked<AnnotatedMethod>` POJOPropertyBuilder.`_getters`
`protected Map<MemberKey,AnnotatedMethod>` AnnotatedMethodMap.`_methods`
`protected POJOPropertyBuilder.Linked<AnnotatedMethod>` POJOPropertyBuilder.`_setters`
`List<AnnotatedMethod>` AnnotatedClass.Creators.`creatorMethods` Single argument static methods that might be usable as factory methods

Methods in com.fasterxml.jackson.databind.introspect that return AnnotatedMethod
`protected AnnotatedMethod` POJOPropertyBuilder.`_selectSetter(AnnotatedMethod currM, AnnotatedMethod nextM)`
`protected AnnotatedMethod` POJOPropertyBuilder.`_selectSetterFromMultiple(POJOPropertyBuilder.Linked<AnnotatedMethod> curr, POJOPropertyBuilder.Linked<AnnotatedMethod> next)` Helper method called in cases where we have encountered two setter methods that have same precedence and cannot be resolved.
`AnnotatedMethod` AnnotatedMethodMap.`find(Method m)`
`AnnotatedMethod` AnnotatedMethodMap.`find(String name, Class<?>[] paramTypes)`
`AnnotatedMethod` BasicBeanDescription.`findJsonValueMethod()` Deprecated.
`AnnotatedMethod` BasicBeanDescription.`findMethod(String name, Class<?>[] paramTypes)`
`AnnotatedMethod` AnnotatedClass.`findMethod(String name, Class<?>[] paramTypes)`
`AnnotatedMethod` POJOPropertiesCollector.`getAnySetterMethod()`
`AnnotatedMethod` POJOPropertyBuilder.`getGetter()`
`abstract AnnotatedMethod` BeanPropertyDefinition.`getGetter()`
`protected AnnotatedMethod` POJOPropertyBuilder.`getGetterUnchecked()` Variant of `POJOPropertyBuilder.getGetter()` that does NOT trigger pruning of getter candidates.
`AnnotatedMethod` POJOPropertiesCollector.`getJsonValueMethod()` Deprecated.
`AnnotatedMethod` POJOPropertyBuilder.`getSetter()`
`abstract AnnotatedMethod` BeanPropertyDefinition.`getSetter()`
`protected AnnotatedMethod` POJOPropertyBuilder.`getSetterUnchecked()` Variant of `POJOPropertyBuilder.getSetter()` that does NOT trigger pruning of setter candidates.

`AnnotatedMethod`

JacksonAnnotationIntrospector.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)`
Specific implementation that will use following tie-breaker on given setter parameter types: If either one is primitive type then either return `null` (both primitives) or one that is primitive (when only primitive) If only one is of type `String`, return that setter Otherwise return `null` Returning `null` will indicate that resolution could not be done.

`AnnotatedMethod` AnnotationIntrospectorPair.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)`
`AnnotatedMethod` AnnotatedMethod.`withAnnotations(AnnotationMap ann)`

Methods in com.fasterxml.jackson.databind.introspect that return types with arguments of type AnnotatedMethod
`protected AnnotatedAndMetadata<AnnotatedMethod,com.fasterxml.jackson.annotation.JsonCreator.Mode>` BasicBeanDescription.`findFactoryMethodMetadata(AnnotatedMethod am)`
`List<AnnotatedMethod>` BasicBeanDescription.`getFactoryMethods()`
`List<AnnotatedMethod>` AnnotatedClass.`getFactoryMethods()`
`List<AnnotatedAndMetadata<AnnotatedMethod,com.fasterxml.jackson.annotation.JsonCreator.Mode>>` BasicBeanDescription.`getFactoryMethodsWithMode()`
`List<AnnotatedMethod>` AnnotatedClass.`getStaticMethods()` Deprecated. Since 2.9; use `AnnotatedClass.getFactoryMethods()` instead.
`Iterator<AnnotatedMethod>` AnnotatedMethodMap.`iterator()`
`Iterable<AnnotatedMethod>` AnnotatedClass.`memberMethods()`

Methods in com.fasterxml.jackson.databind.introspect with parameters of type AnnotatedMethod
`protected void` POJOPropertiesCollector.`_addGetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)`
`protected void` POJOPropertiesCollector.`_addSetterMethod(Map<String,POJOPropertyBuilder> props, AnnotatedMethod m, AnnotationIntrospector ai)`
`protected int` POJOPropertyBuilder.`_getterPriority(AnnotatedMethod m)`
`protected boolean` DefaultAccessorNamingStrategy.`_isCglibGetCallbacks(AnnotatedMethod am)`
`protected boolean` DefaultAccessorNamingStrategy.`_isGroovyMetaClassGetter(AnnotatedMethod am)`
`protected AnnotatedMethod` POJOPropertyBuilder.`_selectSetter(AnnotatedMethod currM, AnnotatedMethod nextM)`
`protected int` POJOPropertyBuilder.`_setterPriority(AnnotatedMethod m)`
`void` POJOPropertyBuilder.`addGetter(AnnotatedMethod a, PropertyName name, boolean explName, boolean visible, boolean ignored)`
`void` POJOPropertyBuilder.`addSetter(AnnotatedMethod a, PropertyName name, boolean explName, boolean visible, boolean ignored)`
`protected AnnotatedAndMetadata<AnnotatedMethod,com.fasterxml.jackson.annotation.JsonCreator.Mode>` BasicBeanDescription.`findFactoryMethodMetadata(AnnotatedMethod am)`
`abstract String` AccessorNamingStrategy.`findNameForIsGetter(AnnotatedMethod method, String name)` Method called to find whether given method would be considered an "is-getter" getter method in context of type introspected, and if so, what is the logical property it is associated with (which in turn suggest external name for property)
`String` AccessorNamingStrategy.Base.`findNameForIsGetter(AnnotatedMethod method, String name)`
`String` DefaultAccessorNamingStrategy.`findNameForIsGetter(AnnotatedMethod am, String name)`
`abstract String` AccessorNamingStrategy.`findNameForMutator(AnnotatedMethod method, String name)` Method called to find whether given method would be considered a "mutator" (usually setter, but for builders "with-method" or similar) in context of type introspected, and if so, what is the logical property it is associated with (which in turn suggest external name for property)
`String` AccessorNamingStrategy.Base.`findNameForMutator(AnnotatedMethod method, String name)`
`String` DefaultAccessorNamingStrategy.`findNameForMutator(AnnotatedMethod am, String name)`
`abstract String` AccessorNamingStrategy.`findNameForRegularGetter(AnnotatedMethod method, String name)` Method called to find whether given method would be considered a "regular" getter method in context of type introspected, and if so, what is the logical property it is associated with (which in turn suggest external name for property)
`String` AccessorNamingStrategy.Base.`findNameForRegularGetter(AnnotatedMethod method, String name)`
`String` DefaultAccessorNamingStrategy.`findNameForRegularGetter(AnnotatedMethod am, String name)`
`String` DefaultAccessorNamingStrategy.RecordNaming.`findNameForRegularGetter(AnnotatedMethod am, String name)`
`boolean` JacksonAnnotationIntrospector.`hasAnyGetterAnnotation(AnnotatedMethod am)` Deprecated.
`boolean` AnnotationIntrospectorPair.`hasAnyGetterAnnotation(AnnotatedMethod am)` Deprecated.
`boolean` JacksonAnnotationIntrospector.`hasAnySetterAnnotation(AnnotatedMethod am)` Deprecated.
`boolean` AnnotationIntrospectorPair.`hasAnySetterAnnotation(AnnotatedMethod am)` Deprecated.
`boolean` JacksonAnnotationIntrospector.`hasAsValueAnnotation(AnnotatedMethod am)` Deprecated.
`boolean` AnnotationIntrospectorPair.`hasAsValueAnnotation(AnnotatedMethod am)` Deprecated.
`protected boolean` BasicBeanDescription.`isFactoryMethod(AnnotatedMethod am)`
`boolean` VisibilityChecker.`isGetterVisible(AnnotatedMethod m)`
`boolean` VisibilityChecker.Std.`isGetterVisible(AnnotatedMethod m)`
`boolean` VisibilityChecker.`isIsGetterVisible(AnnotatedMethod m)`
`boolean` VisibilityChecker.Std.`isIsGetterVisible(AnnotatedMethod m)`
`boolean` VisibilityChecker.`isSetterVisible(AnnotatedMethod m)`
`boolean` VisibilityChecker.Std.`isSetterVisible(AnnotatedMethod m)`

`AnnotatedMethod`

JacksonAnnotationIntrospector.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)`
Specific implementation that will use following tie-breaker on given setter parameter types: If either one is primitive type then either return `null` (both primitives) or one that is primitive (when only primitive) If only one is of type `String`, return that setter Otherwise return `null` Returning `null` will indicate that resolution could not be done.

`AnnotatedMethod` AnnotationIntrospectorPair.`resolveSetterConflict(MapperConfig<?> config, AnnotatedMethod setter1, AnnotatedMethod setter2)`

Method parameters in com.fasterxml.jackson.databind.introspect with type arguments of type AnnotatedMethod
`protected AnnotatedMethod` POJOPropertyBuilder.`_selectSetterFromMultiple(POJOPropertyBuilder.Linked<AnnotatedMethod> curr, POJOPropertyBuilder.Linked<AnnotatedMethod> next)` Helper method called in cases where we have encountered two setter methods that have same precedence and cannot be resolved.
`protected AnnotatedMethod` POJOPropertyBuilder.`_selectSetterFromMultiple(POJOPropertyBuilder.Linked<AnnotatedMethod> curr, POJOPropertyBuilder.Linked<AnnotatedMethod> next)` Helper method called in cases where we have encountered two setter methods that have same precedence and cannot be resolved.

Constructor parameters in com.fasterxml.jackson.databind.introspect with type arguments of type AnnotatedMethod
Constructor and Description
`AnnotatedMethodMap(Map<MemberKey,AnnotatedMethod> m)`
`Creators(AnnotatedConstructor defCtor, List<AnnotatedConstructor> ctors, List<AnnotatedMethod> ctorMethods)`

### Uses of AnnotatedMethod in com.fasterxml.jackson.databind.util

Methods in com.fasterxml.jackson.databind.util that return AnnotatedMethod
`AnnotatedMethod` SimpleBeanPropertyDefinition.`getGetter()`
`AnnotatedMethod` SimpleBeanPropertyDefinition.`getSetter()`

Methods in com.fasterxml.jackson.databind.util with parameters of type AnnotatedMethod
`protected static boolean` BeanUtil.`isCglibGetCallbacks(AnnotatedMethod am)` This method was added to address the need to weed out CGLib-injected "getCallbacks" method.
`protected static boolean` BeanUtil.`isGroovyMetaClassGetter(AnnotatedMethod am)` Another helper method to deal with Groovy's problematic metadata accessors
`static String` BeanUtil.`okNameForGetter(AnnotatedMethod am, boolean stdNaming)` Deprecated. Since 2.12 replaced with `AccessorNamingStrategy`
`static String` BeanUtil.`okNameForIsGetter(AnnotatedMethod am, String name, boolean stdNaming)` Deprecated. Since 2.12 replaced with `AccessorNamingStrategy`
`static String` BeanUtil.`okNameForMutator(AnnotatedMethod am, String prefix, boolean stdNaming)` Deprecated. Since 2.12 replaced with `AccessorNamingStrategy`
`static String` BeanUtil.`okNameForRegularGetter(AnnotatedMethod am, String name, boolean stdNaming)` Deprecated. Since 2.12 replaced with `AccessorNamingStrategy`
`static String` BeanUtil.`okNameForSetter(AnnotatedMethod am, boolean stdNaming)` Deprecated.