Annotation Type Producer
-
@Target(PARAMETER) @Retention(CLASS) @Documented public @interface Producer
Identifies a parameter has the ability to produce aThrowable
or a super type of aThrowable
. The parameter type must be aFunction
or aBiFunction
.For a
Function
the input parameter must be aString
which will be the message associated with the method. The result type mustThrowable
or a super type of aThrowable
.For a
BiFunction
one of the input parameters must be aString
which will be the message associated with the method. The other input parameter must be aThrowable
or a super type of aThrowable
and must be assignable from the parameter annotated withCause
. The result type mustThrowable
or a super type of aThrowable
.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