Annotation Interface MayOptionallyUse


@Target(PARAMETER) @Retention(SOURCE) public @interface MayOptionallyUse
Indicates that a parameter to a placeholder method is not required to be used in the placeholder's implementation. For example, the pattern

abstract class Utf8Bytes {
 @Placeholder abstract void handleException(
     @MayOptionallyUse UnsupportedEncodingException e);
 @Placeholder abstract void useString(String str);
 @BeforeTemplate void before(byte[] array) {
    try {
      useString(new String(array, "UTF_8"));
    } catch (UnsupportedEncodingException e) {
      handleException(e);
    }
  }
 @AfterTemplate void after(byte[] array) {
    useString(new String(array, StandardCharsets.UTF_8));
  }
}
would match even if the catch statement were empty, or didn't refer to e.