Package com.thoughtworks.paranamer

## Class AdaptiveParanamer

- java.lang.Object
- - com.thoughtworks.paranamer.AdaptiveParanamer

- All Implemented Interfaces:
    `Paranamer`

      public class AdaptiveParanamer
      extends Object
      implements Paranamer

  Implementation of Paranamer which chooses between a series of Paranamer instances depending on which can supply data. It prioritizes the paranamer instances according to the order they were passed in.
  Author:
    Paul Hammant, Mauro Talevi

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `__PARANAMER_DATA` |

    - ### Fields inherited from interface com.thoughtworks.paranamer.Paranamer

      `EMPTY_NAMES`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AdaptiveParanamer()` | Use DefaultParanamer ahead of BytecodeReadingParanamer
    `AdaptiveParanamer​(Paranamer... paranamers)` | Prioritize a series of Paranamers

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String[]` | `lookupParameterNames​(AccessibleObject methodOrConstructor)` | Lookup the parameter names of a given method.
    `String[]` | `lookupParameterNames​(AccessibleObject methodOrCtor, boolean throwExceptionIfMissing)` | Lookup the parameter names of a given method.

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

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

- - ### Field Detail

    - #### __PARANAMER_DATA

          public static final String __PARANAMER_DATA

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AdaptiveParanamer

          public AdaptiveParanamer()

      Use DefaultParanamer ahead of BytecodeReadingParanamer

    - #### AdaptiveParanamer

          public AdaptiveParanamer​(Paranamer... paranamers)

      Prioritize a series of Paranamers
      Parameters:
        `paranamers` - the paranamers in question

  - ### Method Detail

    - #### lookupParameterNames

          public String[] lookupParameterNames​(AccessibleObject methodOrConstructor)

      Description copied from interface: `Paranamer`
      Lookup the parameter names of a given method.
      Specified by:
        `lookupParameterNames` in interface `Paranamer`
      Parameters:
        `methodOrConstructor` - the `Method` or `Constructor` for which the parameter names are looked up.
      Returns:
        A list of the parameter names.

    - #### lookupParameterNames

          public String[] lookupParameterNames​(AccessibleObject methodOrCtor,
                                               boolean throwExceptionIfMissing)

      Description copied from interface: `Paranamer`
      Lookup the parameter names of a given method.
      Specified by:
        `lookupParameterNames` in interface `Paranamer`
      Parameters:
        `methodOrCtor` - the `Method` or `Constructor` for which the parameter names are looked up.
        `throwExceptionIfMissing` - whether to throw an exception if no Paranamer data found (versus return null).
      Returns:
        A list of the parameter names.