AnnotatedParameter (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map.introspect

## Class AnnotatedParameter

- java.lang.Object
- - org.codehaus.jackson.map.introspect.Annotated
  - - org.codehaus.jackson.map.introspect.AnnotatedMember
    - - org.codehaus.jackson.map.introspect.AnnotatedParameter

-     public final class AnnotatedParameter
      extends AnnotatedMember

  Object that represents method parameters, mostly so that associated annotations can be processed conveniently. Note that many of accessors can not return meaningful values since parameters do not have stand-alone JDK objects associated; so access should mostly be limited to checking annotation values which are properly aggregated and included.

  Note: as of version 1.7, this type extends `AnnotatedMember`, since it behaves like a member for the most part, but earlier it just extended `Annotated`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `_index` Index of the parameter within argument list
    `protected AnnotatedWithParams` | `_owner` Member (method, constructor) that this parameter belongs to
    `protected Type` | `_type` JDK type of the parameter, possibly contains generic type information

    - ### Fields inherited from class org.codehaus.jackson.map.introspect.AnnotatedMember

      `_annotations`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AnnotatedParameter(AnnotatedWithParams owner, Type type, AnnotationMap annotations, int index)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addOrOverride(Annotation a)`
    `AnnotatedElement` | `getAnnotated()` Since there is no matching JDK element, this method will always return null
    `<A extends Annotation> A` | `getAnnotation(Class<A> acls)` Accessor for annotations; all annotations associated with parameters are properly passed and accessible.
    `Class<?>` | `getDeclaringClass()`
    `Type` | `getGenericType()` Full generic type of the annotated element; definition of what exactly this means depends on sub-class.
    `int` | `getIndex()` Accessor for index of this parameter within argument list
    `Member` | `getMember()`
    `int` | `getModifiers()` Returns modifiers of the constructor, as parameters do not have independent modifiers.
    `String` | `getName()` Parameters have no names in bytecode (unlike in source code), will always return empty String ("").
    `AnnotatedWithParams` | `getOwner()` Accessor for 'owner' of this parameter; method or constructor that has this parameter as member of its argument list.
    `Type` | `getParameterType()`
    `Class<?>` | `getRawType()` "Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.
    `void` | `setValue(Object pojo, Object value)` Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.
    `String` | `toString()`
    `AnnotatedParameter` | `withAnnotations(AnnotationMap ann)` Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.

    - ### Methods inherited from class org.codehaus.jackson.map.introspect.AnnotatedMember

      `fixAccess, getAllAnnotations`

    - ### Methods inherited from class org.codehaus.jackson.map.introspect.Annotated

      `getType, hasAnnotation, isPublic, withFallBackAnnotationsFrom`

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

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

- - ### Field Detail

    - #### _owner

          protected final AnnotatedWithParams _owner

      Member (method, constructor) that this parameter belongs to
      Since:
        1.7

    - #### _type

          protected final Type _type

      JDK type of the parameter, possibly contains generic type information

    - #### _index

          protected final int _index

      Index of the parameter within argument list
      Since:
        1.9

  - ### Constructor Detail

    - #### AnnotatedParameter

          public AnnotatedParameter(AnnotatedWithParams owner,
                            Type type,
                            AnnotationMap annotations,
                            int index)

  - ### Method Detail

    - #### withAnnotations

          public AnnotatedParameter withAnnotations(AnnotationMap ann)

      Description copied from class: `Annotated`
      Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.
      Specified by:
        `withAnnotations` in class `Annotated`

    - #### addOrOverride

          public void addOrOverride(Annotation a)

    - #### getAnnotated

          public AnnotatedElement getAnnotated()

      Since there is no matching JDK element, this method will always return null
      Specified by:
        `getAnnotated` in class `Annotated`

    - #### getModifiers

          public int getModifiers()

      Returns modifiers of the constructor, as parameters do not have independent modifiers.
      Specified by:
        `getModifiers` in class `Annotated`

    - #### getName

          public String getName()

      Parameters have no names in bytecode (unlike in source code), will always return empty String ("").
      Specified by:
        `getName` in class `Annotated`

    - #### getAnnotation

          public <A extends Annotation> A getAnnotation(Class<A> acls)

      Accessor for annotations; all annotations associated with parameters are properly passed and accessible.
      Specified by:
        `getAnnotation` in class `Annotated`

    - #### getGenericType

          public Type getGenericType()

      Description copied from class: `Annotated`
      Full generic type of the annotated element; definition of what exactly this means depends on sub-class.
      Specified by:
        `getGenericType` in class `Annotated`

    - #### getRawType

          public Class<?> getRawType()

      Description copied from class: `Annotated`
      "Raw" type (type-erased class) of the annotated element; definition of what exactly this means depends on sub-class.
      Specified by:
        `getRawType` in class `Annotated`

    - #### getDeclaringClass

          public Class<?> getDeclaringClass()

      Specified by:
        `getDeclaringClass` in class `AnnotatedMember`

    - #### getMember

          public Member getMember()

      Specified by:
        `getMember` in class `AnnotatedMember`

    - #### setValue

          public void setValue(Object pojo,
                      Object value)
                        throws UnsupportedOperationException

      Description copied from class: `AnnotatedMember`
      Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.

      This is implemented for fiedlds and single-argument methods; but not for constructor parameters or other types of methods.

      Specified by:
        `setValue` in class `AnnotatedMember`
      Throws:
        `UnsupportedOperationException`

    - #### getParameterType

          public Type getParameterType()

    - #### getOwner

          public AnnotatedWithParams getOwner()

      Accessor for 'owner' of this parameter; method or constructor that has this parameter as member of its argument list.
      Returns:
        Owner (member or creator) object of this parameter
      Since:
        1.9

    - #### getIndex

          public int getIndex()

      Accessor for index of this parameter within argument list
      Returns:
        Index of this parameter within argument list
      Since:
        1.9

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`