diff options
Diffstat (limited to 'qpid/java/common/Invoker.tpl')
| -rw-r--r-- | qpid/java/common/Invoker.tpl | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/qpid/java/common/Invoker.tpl b/qpid/java/common/Invoker.tpl index 9158922df7..eb01329374 100644 --- a/qpid/java/common/Invoker.tpl +++ b/qpid/java/common/Invoker.tpl @@ -5,14 +5,12 @@ import java.util.List; import java.util.Map; import java.util.UUID; -public abstract class Invoker { - - protected abstract void invoke(Method method); - protected abstract <T> Future<T> invoke(Method method, Class<T> resultClass); - +public abstract class $(invoker) { ${ from genutil import * +results = False + for c in composites: name = cname(c) fields = get_fields(c) @@ -20,6 +18,7 @@ for c in composites: args = get_arguments(c, fields) result = c["result"] if result: + results = True if not result["@type"]: rname = cname(result["struct"]) else: @@ -32,11 +31,22 @@ for c in composites: jreturn = "" jclass = "" + if c.name == "command": + access = "public " + else: + access = "" + out(""" - public final $jresult $(dromedary(name))($(", ".join(params))) { + $(access)final $jresult $(dromedary(name))($(", ".join(params))) { $(jreturn)invoke(new $name($(", ".join(args)))$jclass); } """) } - + protected abstract void invoke(Method method); +${ +if results: + out(""" + protected abstract <T> Future<T> invoke(Method method, Class<T> resultClass); +""") +} } |
