org.apache.tapestry5.plastic
Class MethodDescription

java.lang.Object
  extended by 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
 String[] argumentTypes
          A non-null array of Java source names for arguments.
 String[] checkedExceptionTypes
          A non-null array of Java source names for checked exceptions.
 String genericSignature
           
 String methodName
          The name of the method.
 int modifiers
          The full set of modifier flags for the method.
 String returnType
          The Java source name for the return type, e.g., "void", "short", "java.util.Map", "java.lang.String[]".
 
Constructor Summary
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.
 
Method Summary
 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 Detail

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 Detail

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(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 Detail

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


Copyright © 2003-2012 The Apache Software Foundation.