jersey.repackaged.org.objectweb.asm

## Class Type

- java.lang.Object
- - jersey.repackaged.org.objectweb.asm.Type

    public final class Type
    extends Object

A Java field or method type. This class can be used to make it easier to manipulate type and method descriptors.

Author:
  Eric Bruneton, Chris Nokleberg

### Field Summary

Fields
`static int` `ARRAY` The sort of array reference types.
`static int` `BOOLEAN` The sort of the `boolean` type.
`static Type` `BOOLEAN_TYPE` The `boolean` type.
`static int` `BYTE` The sort of the `byte` type.
`static Type` `BYTE_TYPE` The `byte` type.
`static int` `CHAR` The sort of the `char` type.
`static Type` `CHAR_TYPE` The `char` type.
`static int` `DOUBLE` The sort of the `double` type.
`static Type` `DOUBLE_TYPE` The `double` type.
`static int` `FLOAT` The sort of the `float` type.
`static Type` `FLOAT_TYPE` The `float` type.
`static int` `INT` The sort of the `int` type.
`static Type` `INT_TYPE` The `int` type.
`static int` `LONG` The sort of the `long` type.
`static Type` `LONG_TYPE` The `long` type.
`static int` `METHOD` The sort of method types.
`static int` `OBJECT` The sort of object reference types.
`static int` `SHORT` The sort of the `short` type.
`static Type` `SHORT_TYPE` The `short` type.
`static int` `VOID` The sort of the `void` type.
`static Type` `VOID_TYPE` The `void` type.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `equals(Object object)` Tests if the given object is equal to this type.
`int` `getArgumentsAndReturnSizes()` Returns the size of the arguments and of the return value of methods of this type.
`static int` `getArgumentsAndReturnSizes(String methodDescriptor)` Computes the size of the arguments and of the return value of a method.
`Type[]` `getArgumentTypes()` Returns the argument types of methods of this type.
`static Type[]` `getArgumentTypes(Method method)` Returns the `Type` values corresponding to the argument types of the given method.
`static Type[]` `getArgumentTypes(String methodDescriptor)` Returns the `Type` values corresponding to the argument types of the given method descriptor.
`String` `getClassName()` Returns the binary name of the class corresponding to this type.
`static String` `getConstructorDescriptor(Constructor<?> constructor)` Returns the descriptor corresponding to the given constructor.
`String` `getDescriptor()` Returns the descriptor corresponding to this type.
`static String` `getDescriptor(Class<?> clazz)` Returns the descriptor corresponding to the given class.
`int` `getDimensions()` Returns the number of dimensions of this array type.
`Type` `getElementType()` Returns the type of the elements of this array type.
`String` `getInternalName()` Returns the internal name of the class corresponding to this object or array type.
`static String` `getInternalName(Class<?> clazz)` Returns the internal name of the given class.
`static String` `getMethodDescriptor(Method method)` Returns the descriptor corresponding to the given method.
`static String` `getMethodDescriptor(Type returnType, Type... argumentTypes)` Returns the descriptor corresponding to the given argument and return types.
`static Type` `getMethodType(String methodDescriptor)` Returns the `Type` corresponding to the given method descriptor.
`static Type` `getMethodType(Type returnType, Type... argumentTypes)` Returns the method `Type` corresponding to the given argument and return types.
`static Type` `getObjectType(String internalName)` Returns the `Type` corresponding to the given internal name.
`int` `getOpcode(int opcode)` Returns a JVM instruction opcode adapted to this `Type`.
`Type` `getReturnType()` Returns the return type of methods of this type.
`static Type` `getReturnType(Method method)` Returns the `Type` corresponding to the return type of the given method.
`static Type` `getReturnType(String methodDescriptor)` Returns the `Type` corresponding to the return type of the given method descriptor.
`int` `getSize()` Returns the size of values of this type.
`int` `getSort()` Returns the sort of this type.
`static Type` `getType(Class<?> clazz)` Returns the `Type` corresponding to the given class.
`static Type` `getType(Constructor<?> constructor)` Returns the method `Type` corresponding to the given constructor.
`static Type` `getType(Method method)` Returns the method `Type` corresponding to the given method.
`static Type` `getType(String typeDescriptor)` Returns the `Type` corresponding to the given type descriptor.
`int` `hashCode()` Returns a hash code value for this type.
`String` `toString()` Returns a string representation of this type.

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

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

### Field Detail

#### VOID

    public static final int VOID

The sort of the `void` type. See `getSort()`.

See Also:
  Constant Field Values

#### BOOLEAN

    public static final int BOOLEAN

The sort of the `boolean` type. See `getSort()`.

See Also:
  Constant Field Values

#### CHAR

    public static final int CHAR

The sort of the `char` type. See `getSort()`.

See Also:
  Constant Field Values

#### BYTE

    public static final int BYTE

The sort of the `byte` type. See `getSort()`.

See Also:
  Constant Field Values

#### SHORT

    public static final int SHORT

The sort of the `short` type. See `getSort()`.

See Also:
  Constant Field Values

#### INT

    public static final int INT

The sort of the `int` type. See `getSort()`.

See Also:
  Constant Field Values

#### FLOAT

    public static final int FLOAT

The sort of the `float` type. See `getSort()`.

See Also:
  Constant Field Values

#### LONG

    public static final int LONG

The sort of the `long` type. See `getSort()`.

See Also:
  Constant Field Values

#### DOUBLE

    public static final int DOUBLE

The sort of the `double` type. See `getSort()`.

See Also:
  Constant Field Values

#### ARRAY

    public static final int ARRAY

The sort of array reference types. See `getSort()`.

See Also:
  Constant Field Values

#### OBJECT

    public static final int OBJECT

The sort of object reference types. See `getSort()`.

See Also:
  Constant Field Values

#### METHOD

    public static final int METHOD

The sort of method types. See `getSort()`.

See Also:
  Constant Field Values

#### VOID_TYPE

    public static final Type VOID_TYPE

The `void` type.

#### BOOLEAN_TYPE

    public static final Type BOOLEAN_TYPE

The `boolean` type.

#### CHAR_TYPE

    public static final Type CHAR_TYPE

The `char` type.

#### BYTE_TYPE

    public static final Type BYTE_TYPE

The `byte` type.

#### SHORT_TYPE

    public static final Type SHORT_TYPE

The `short` type.

#### INT_TYPE

    public static final Type INT_TYPE

The `int` type.

#### FLOAT_TYPE

    public static final Type FLOAT_TYPE

The `float` type.

#### LONG_TYPE

    public static final Type LONG_TYPE

The `long` type.

#### DOUBLE_TYPE

    public static final Type DOUBLE_TYPE

The `double` type.

### Method Detail

#### getType

    public static Type getType(String typeDescriptor)

Returns the `Type` corresponding to the given type descriptor.

Parameters:
  `typeDescriptor` - a field or method type descriptor.
Returns:
  the `Type` corresponding to the given type descriptor.

#### getType

    public static Type getType(Class<?> clazz)

Returns the `Type` corresponding to the given class.

Parameters:
  `clazz` - a class.
Returns:
  the `Type` corresponding to the given class.

#### getType

    public static Type getType(Constructor<?> constructor)

Returns the method `Type` corresponding to the given constructor.

Parameters:
  `constructor` - a `Constructor` object.
Returns:
  the method `Type` corresponding to the given constructor.

#### getType

    public static Type getType(Method method)

Returns the method `Type` corresponding to the given method.

Parameters:
  `method` - a `Method` object.
Returns:
  the method `Type` corresponding to the given method.

#### getElementType

    public Type getElementType()

Returns the type of the elements of this array type. This method should only be used for an array type.

Returns:
  Returns the type of the elements of this array type.

#### getObjectType

    public static Type getObjectType(String internalName)

Returns the `Type` corresponding to the given internal name.

Parameters:
  `internalName` - an internal name.
Returns:
  the `Type` corresponding to the given internal name.

#### getMethodType

    public static Type getMethodType(String methodDescriptor)

Returns the `Type` corresponding to the given method descriptor. Equivalent to `Type.getType(methodDescriptor)`.

Parameters:
  `methodDescriptor` - a method descriptor.
Returns:
  the `Type` corresponding to the given method descriptor.

#### getMethodType

    public static Type getMethodType(Type returnType,
                                     Type... argumentTypes)

Returns the method `Type` corresponding to the given argument and return types.

Parameters:
  `returnType` - the return type of the method.
  `argumentTypes` - the argument types of the method.
Returns:
  the method `Type` corresponding to the given argument and return types.

#### getArgumentTypes

    public Type[] getArgumentTypes()

Returns the argument types of methods of this type. This method should only be used for method types.

Returns:
  the argument types of methods of this type.

#### getArgumentTypes

    public static Type[] getArgumentTypes(String methodDescriptor)

Returns the `Type` values corresponding to the argument types of the given method descriptor.

Parameters:
  `methodDescriptor` - a method descriptor.
Returns:
  the `Type` values corresponding to the argument types of the given method descriptor.

#### getArgumentTypes

    public static Type[] getArgumentTypes(Method method)

Returns the `Type` values corresponding to the argument types of the given method.

Parameters:
  `method` - a method.
Returns:
  the `Type` values corresponding to the argument types of the given method.

#### getReturnType

    public Type getReturnType()

Returns the return type of methods of this type. This method should only be used for method types.

Returns:
  the return type of methods of this type.

#### getReturnType

    public static Type getReturnType(String methodDescriptor)

Returns the `Type` corresponding to the return type of the given method descriptor.

Parameters:
  `methodDescriptor` - a method descriptor.
Returns:
  the `Type` corresponding to the return type of the given method descriptor.

#### getReturnType

    public static Type getReturnType(Method method)

Returns the `Type` corresponding to the return type of the given method.

Parameters:
  `method` - a method.
Returns:
  the `Type` corresponding to the return type of the given method.

#### getClassName

    public String getClassName()

Returns the binary name of the class corresponding to this type. This method must not be used on method types.

Returns:
  the binary name of the class corresponding to this type.

#### getInternalName

    public String getInternalName()

Returns the internal name of the class corresponding to this object or array type. The internal name of a class is its fully qualified name (as returned by Class.getName(), where '.' are replaced by '/'). This method should only be used for an object or array type.

Returns:
  the internal name of the class corresponding to this object type.

#### getInternalName

    public static String getInternalName(Class<?> clazz)

Returns the internal name of the given class. The internal name of a class is its fully qualified name, as returned by Class.getName(), where '.' are replaced by '/'.

Parameters:
  `clazz` - an object or array class.
Returns:
  the internal name of the given class.

#### getDescriptor

    public String getDescriptor()

Returns the descriptor corresponding to this type.

Returns:
  the descriptor corresponding to this type.

#### getDescriptor

    public static String getDescriptor(Class<?> clazz)

Returns the descriptor corresponding to the given class.

Parameters:
  `clazz` - an object class, a primitive class or an array class.
Returns:
  the descriptor corresponding to the given class.

#### getConstructorDescriptor

    public static String getConstructorDescriptor(Constructor<?> constructor)

Returns the descriptor corresponding to the given constructor.

Parameters:
  `constructor` - a `Constructor` object.
Returns:
  the descriptor of the given constructor.

#### getMethodDescriptor

    public static String getMethodDescriptor(Type returnType,
                                             Type... argumentTypes)

Returns the descriptor corresponding to the given argument and return types.

Parameters:
  `returnType` - the return type of the method.
  `argumentTypes` - the argument types of the method.
Returns:
  the descriptor corresponding to the given argument and return types.

#### getMethodDescriptor

    public static String getMethodDescriptor(Method method)

Returns the descriptor corresponding to the given method.

Parameters:
  `method` - a `Method` object.
Returns:
  the descriptor of the given method.

#### getSort

    public int getSort()

Returns the sort of this type.

Returns:
  `VOID`, `BOOLEAN`, `CHAR`, `BYTE`, `SHORT`, `INT`, `FLOAT`, `LONG`, `DOUBLE`, `ARRAY`, `OBJECT` or `METHOD`.

#### getDimensions

    public int getDimensions()

Returns the number of dimensions of this array type. This method should only be used for an array type.

Returns:
  the number of dimensions of this array type.

#### getSize

    public int getSize()

Returns the size of values of this type. This method must not be used for method types.

Returns:
  the size of values of this type, i.e., 2 for `long` and `double`, 0 for `void` and 1 otherwise.

#### getArgumentsAndReturnSizes

    public int getArgumentsAndReturnSizes()

Returns the size of the arguments and of the return value of methods of this type. This method should only be used for method types.

Returns:
  the size of the arguments of the method (plus one for the implicit this argument), argumentsSize, and the size of its return value, returnSize, packed into a single int i = `(argumentsSize &lt;&lt; 2) | returnSize` (argumentsSize is therefore equal to `i &gt;&gt; 2`, and returnSize to `i &amp; 0x03`).

#### getArgumentsAndReturnSizes

    public static int getArgumentsAndReturnSizes(String methodDescriptor)

Computes the size of the arguments and of the return value of a method.

Parameters:
  `methodDescriptor` - a method descriptor.
Returns:
  the size of the arguments of the method (plus one for the implicit this argument), argumentsSize, and the size of its return value, returnSize, packed into a single int i = `(argumentsSize &lt;&lt; 2) | returnSize` (argumentsSize is therefore equal to `i &gt;&gt; 2`, and returnSize to `i &amp; 0x03`).

#### getOpcode

    public int getOpcode(int opcode)

Returns a JVM instruction opcode adapted to this `Type`. This method must not be used for method types.

Parameters:
  `opcode` - a JVM instruction opcode. This opcode must be one of ILOAD, ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL, ISHR, IUSHR, IAND, IOR, IXOR and IRETURN.
Returns:
  an opcode that is similar to the given opcode, but adapted to this `Type`. For example, if this type is `float` and `opcode` is IRETURN, this method returns FRETURN.

#### equals

    public boolean equals(Object object)

Tests if the given object is equal to this type.

Overrides:
  `equals` in class `Object`
Parameters:
  `object` - the object to be compared to this type.
Returns:
  true if the given object is equal to this type.

#### hashCode

    public int hashCode()

Returns a hash code value for this type.

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this type.

#### toString

    public String toString()

Returns a string representation of this type.

Overrides:
  `toString` in class `Object`
Returns:
  the descriptor of this type.