Class SynthesizingMethodParameter

java.lang.Object
org.springframework.core.MethodParameter
org.springframework.core.annotation.SynthesizingMethodParameter
Direct Known Subclasses:
HandlerMethod.HandlerMethodParameter, HandlerMethod.HandlerMethodParameter

public class SynthesizingMethodParameter extends MethodParameter
A MethodParameter variant which synthesizes annotations that declare attribute aliases via @AliasFor.
Since:
4.2
Author:
Juergen Hoeller, Sam Brannen
See Also:
  • Constructor Details

    • SynthesizingMethodParameter

      public SynthesizingMethodParameter(Method method, int parameterIndex)
      Create a new SynthesizingMethodParameter for the given method, with nesting level 1.
      Parameters:
      method - the Method to specify a parameter for
      parameterIndex - the index of the parameter: -1 for the method return type; 0 for the first method parameter; 1 for the second method parameter, etc.
    • SynthesizingMethodParameter

      public SynthesizingMethodParameter(Method method, int parameterIndex, int nestingLevel)
      Create a new SynthesizingMethodParameter for the given method.
      Parameters:
      method - the Method to specify a parameter for
      parameterIndex - the index of the parameter: -1 for the method return type; 0 for the first method parameter; 1 for the second method parameter, etc.
      nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
    • SynthesizingMethodParameter

      public SynthesizingMethodParameter(Constructor<?> constructor, int parameterIndex)
      Create a new SynthesizingMethodParameter for the given constructor, with nesting level 1.
      Parameters:
      constructor - the Constructor to specify a parameter for
      parameterIndex - the index of the parameter
    • SynthesizingMethodParameter

      public SynthesizingMethodParameter(Constructor<?> constructor, int parameterIndex, int nestingLevel)
      Create a new SynthesizingMethodParameter for the given constructor.
      Parameters:
      constructor - the Constructor to specify a parameter for
      parameterIndex - the index of the parameter
      nestingLevel - the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List)
    • SynthesizingMethodParameter

      protected SynthesizingMethodParameter(SynthesizingMethodParameter original)
      Copy constructor, resulting in an independent SynthesizingMethodParameter based on the same metadata and cache state that the original object was in.
      Parameters:
      original - the original SynthesizingMethodParameter object to copy from
  • Method Details

    • adaptAnnotation

      protected <A extends Annotation> A adaptAnnotation(A annotation)
      Description copied from class: MethodParameter
      A template method to post-process a given annotation instance before returning it to the caller.

      The default implementation simply returns the given annotation as-is.

      Overrides:
      adaptAnnotation in class MethodParameter
      Parameters:
      annotation - the annotation about to be returned
      Returns:
      the post-processed annotation (or simply the original one)
    • adaptAnnotationArray

      protected Annotation[] adaptAnnotationArray(Annotation[] annotations)
      Description copied from class: MethodParameter
      A template method to post-process a given annotation array before returning it to the caller.

      The default implementation simply returns the given annotation array as-is.

      Overrides:
      adaptAnnotationArray in class MethodParameter
      Parameters:
      annotations - the annotation array about to be returned
      Returns:
      the post-processed annotation array (or simply the original one)
    • clone

      Overrides:
      clone in class MethodParameter
    • forExecutable

      public static SynthesizingMethodParameter forExecutable(Executable executable, int parameterIndex)
      Create a new SynthesizingMethodParameter for the given method or constructor.

      This is a convenience factory method for scenarios where a Method or Constructor reference is treated in a generic fashion.

      Parameters:
      executable - the Method or Constructor to specify a parameter for
      parameterIndex - the index of the parameter
      Returns:
      the corresponding SynthesizingMethodParameter instance
      Since:
      5.0
    • forParameter

      public static SynthesizingMethodParameter forParameter(Parameter parameter)
      Create a new SynthesizingMethodParameter for the given parameter descriptor.

      This is a convenience factory method for scenarios where a Java 8 Parameter descriptor is already available.

      Parameters:
      parameter - the parameter descriptor
      Returns:
      the corresponding SynthesizingMethodParameter instance
      Since:
      5.0