Package org.apache.tapestry5.plastic

# Class MethodDescription

java.lang.Object
org.apache.tapestry5.plastic.MethodDescription

All Implemented Interfaces:
  `Comparable<MethodDescription>`

public class MethodDescription extends Object implements Comparable<MethodDescription>
Describes a `PlasticMethod` in terms of a method name, a set of modifiers (public, private, static, final, etc.), a return type, types of method arguments, and types of checked exceptions. Types are represented as Java source names: either names of primitives ("void", "byte", "long") or fully qualified class names ("java.lang.Object", "java.lang.Runnable"). ASM refers to this as "class name". MethodDescriptions are immutable, and properly implement equals() and hashCode(); they are often used as keys in Maps. The natural sort order for a MethodDescription is ascending order by method name, then descending order by number of parameters (for the same name). Sort order is not currently specified for overrides of the same method with the same number of parameters. TODO: Handling generic types.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final String[]`
  `argumentTypes`
  A non-null array of Java source names for arguments.
  `final String[]`
  `checkedExceptionTypes`
  A non-null array of Java source names for checked exceptions.
  `final String`
  `genericSignature`
  `final String`
  `methodName`
  The name of the method.
  `final int`
  `modifiers`
  The full set of modifier flags for the method.
  `final String`
  `returnType`
  The Java source name for the return type, e.g., "void", "short", "java.util.Map", "java.lang.String[]".

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MethodDescription(int modifiers, String returnType, String methodName, String[] argumentTypes, String genericSignature, String[] checkedExceptionTypes)`
  `MethodDescription(Method method)`
  Creates a MethodDescription from a Java Method.
  `MethodDescription(String returnType, String methodName, String... argumentTypes)`
  Convenience constructor for public methods that have no checked exceptions.
  `MethodDescription(MethodDescription description, String[] checkedExceptionTypes)`
  Convenience constructor for copying a MethodDescription with different exception types.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compareTo(MethodDescription o)`
  `boolean`
  `equals(Object obj)`
  `int`
  `hashCode()`
  `String`
  `toShortString()`
  A string used to identify the method, containing just the method name and argument types (but ignoring visibility, return type and thrown exceptions).
  `String`
  `toString()`
  `MethodDescription`
  `withModifiers(int newModifiers)`

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

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

- ## Field Details

  - ### modifiers

    public final int modifiers
    The full set of modifier flags for the method.

  - ### returnType

    public final String returnType
    The Java source name for the return type, e.g., "void", "short", "java.util.Map", "java.lang.String[]".

  - ### methodName

    public final String methodName
    The name of the method.

  - ### genericSignature

    public final String genericSignature

  - ### argumentTypes

    public final String[] argumentTypes
    A non-null array of Java source names for arguments. Do not modify the contents of this array.

  - ### checkedExceptionTypes

    public final String[] checkedExceptionTypes
    A non-null array of Java source names for checked exceptions. Do not modify the contents of this array.

- ## Constructor Details

  - ### MethodDescription

    public MethodDescription(String returnType, String methodName, String... argumentTypes)
    Convenience constructor for public methods that have no checked exceptions.
    Parameters:
      `returnType` - return type as type name
      `methodName` - name of method
      `argumentTypes` - type names for arguments

  - ### MethodDescription

    public MethodDescription(MethodDescription description, String[] checkedExceptionTypes)
    Convenience constructor for copying a MethodDescription with different exception types.
    Since:
      5.4.4

  - ### MethodDescription

    public MethodDescription(int modifiers, String returnType, String methodName, String[] argumentTypes, String genericSignature, String[] checkedExceptionTypes)
    Parameters:
      `modifiers` -
      `returnType` - Java source name for the return type
      `methodName` -
      `argumentTypes` - may be null
      `genericSignature` - TODO
      `checkedExceptionTypes` - may be null

  - ### MethodDescription

    public MethodDescription(Method method)
    Creates a MethodDescription from a Java Method. The generic signature will be null.

- ## Method Details

  - ### withModifiers

    public MethodDescription withModifiers(int newModifiers)

  - ### compareTo

    public int compareTo(MethodDescription o)
    Specified by:
      `compareTo` in interface `Comparable<MethodDescription>`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### toShortString

    public String toShortString()
    A string used to identify the method, containing just the method name and argument types (but ignoring visibility, return type and thrown exceptions).
    Returns:
      method identifier