Package org.jboss.logging.annotations

## Annotation Type Signature

    @Retention(CLASS)
    @Target(METHOD)
    @Documented
    public @interface Signature

Specifies the exact signature to use when creating a `Throwable` return type.

Given the following exception and message bundle interface method the `InvalidIntValueException(final RuntimeException cause, final String msg, final int value)` constructor would be used. ``

     public class InvalidIntValueException extends RuntimeException {
         private final RuntimeException causeAsRuntime;
         private final int value;
         public InvalidIntValueException(final Throwable cause, final String msg, final int value) {
             super(msg, cause);
             causeAsRuntime = new RuntimeException(cause);
             this.value = value;
         }

         public InvalidIntValueException(final RuntimeException cause, final String msg, final int value) {
             super(msg, cause);
             causeAsRuntime = cause;
             this.value = value;
         }
         public InvalidIntValueException(final RuntimeException cause, final String msg, final Integer value) {
             super(msg, cause);
             causeAsRuntime = cause;
             this.value = value;
         }
     }

`

     @Message("Invalid value %d")
     @Signature(causeIndex = 0, messageIndex = 1, value = {RuntimeException.class, String.class, int.class}
     InvalidIntValueException invalidValue(@Cause RuntimeException cause, @Param int value);

`

Author:
  James R. Perkins

### Required Element Summary

Required Elements
`Class<?>[]` `value` An array of types matching the exact signature to use for the exception being created.

### Optional Element Summary

Optional Elements
`int` `causeIndex` The index for the cause of the exception being created.
`int` `messageIndex` The index for the message.

### Element Detail

#### value

    Class<?>[] value

An array of types matching the exact signature to use for the exception being created.

Returns:
  an array of types used to find the signature

#### causeIndex

    int causeIndex

The index for the cause of the exception being created. A value of less than zero assumes there is no cause parameter in the constructor. A `Cause` annotation can still be used and the `Throwable.initCause(Throwable)` will be used to initialize the cause of the exception.

Returns:
  the index for the cause parameter

Default:
  -1

#### messageIndex

    int messageIndex

The index for the message. This is the formatted messaged from the `Message.value()`. This is a required value defaulting to 0 which would be the first parameter.

Returns:
  the index for the message parameter

Default:
  0