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 
      Modifier and Type Required Element Description
      Class<?>[] value
      An array of types matching the exact signature to use for the exception being created.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      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