[jboss-jira] [JBoss JIRA] (LOGTOOL-124) Ability to provide exception producer
David Lloyd (JIRA)
issues at jboss.org
Tue May 23 17:14:00 EDT 2017
[ https://issues.jboss.org/browse/LOGTOOL-124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13410901#comment-13410901 ]
David Lloyd commented on LOGTOOL-124:
-------------------------------------
I think we should probably use an annotation. That way we don't have to have too much along the lines of hand-wavy magic heuristics, especially if we add functions for other purposes in the future.
> Ability to provide exception producer
> -------------------------------------
>
> Key: LOGTOOL-124
> URL: https://issues.jboss.org/browse/LOGTOOL-124
> Project: Log Tool
> Issue Type: Feature Request
> Reporter: David Lloyd
> Assignee: James Perkins
> Priority: Minor
> Fix For: 2.1.0.Alpha3
>
>
> Sometimes you must use the same exception message for many different types of exception. It would be nice if you could give a parameter which can produce an exception, like this:
> {code}
> public interface MyLogs {
> // ...
> @Message(id = 1234, "The operation failed due to %s")
> <T extends Throwable> T operationFailed(@Producer Function<String, T> fn, String thing);
> }
> {code}
> And later at usage:
> {code}
> // ...
> throw MyLogs.log.operationFailed(IOException::new, "thingy");
> {code}
> A valid function parameter must return a type which is equal or assignable to the return type, and is assignable to Throwable. Other than that, it can be treated the same as as if you were dealing with a constructor class that has exactly one constructor, using the same matching/inference logic, meaning you could also accept BiFunction which accepts two arguments.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list