Producer (JBoss Logging I18n Documentation 2.2.1.Final API)

org.jboss.logging.annotations

## Annotation Type Producer

-     @Target(value=PARAMETER)
       @Retention(value=CLASS)
       @Documented
      public @interface Producer

  Identifies a parameter has the ability to produce a `Throwable` or a super type of a `Throwable`. The parameter type must be a `Function` or a `BiFunction`.

  For a `Function` the input parameter must be a `String` which will be the message associated with the method. The result type must `Throwable` or a super type of a `Throwable`.

  For a `BiFunction` one of the input parameters must be a `String` which will be the message associated with the method. The other input parameter must be a `Throwable` or a super type of a `Throwable` and must be assignable from the parameter annotated with `Cause`. The result type must `Throwable` or a super type of a `Throwable`.

  Example ``

       @Message("The operation failed due to %s")
        T operationFailed(@Producer Function function, String op);

       @Message("The operation failed due to %s")
        T operationFailed(@Producer BiFunction function, @Cause Throwable cause, String op);

  Example Usage ``

       throw Bundle.MESSAGES.operationFailed(IllegalArgumentException::new, "start");

       throw Bundle.MESSAGES.operationFailed(IllegalStateException::new, cause, "start");

  Author:
    James R. Perkins

Copyright © 2019 JBoss by Red Hat. All rights reserved.