From e52758ef2c1742b09ec8654fbe2a21c5ce353745 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 27 Sep 2005 23:05:40 +0000 Subject: [PATCH] Allow the specification of legacy services for which provider interfaces should not be generated. Cleaned up the generated provider interface formatting a bit. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3715 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/tools/GenServiceTask.java | 26 +++++++++++++++++-- .../threerings/presents/tools/provider.tmpl | 11 ++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/java/com/threerings/presents/tools/GenServiceTask.java b/src/java/com/threerings/presents/tools/GenServiceTask.java index 8ff04b4f4..100a02005 100644 --- a/src/java/com/threerings/presents/tools/GenServiceTask.java +++ b/src/java/com/threerings/presents/tools/GenServiceTask.java @@ -11,6 +11,7 @@ import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -78,6 +79,22 @@ public class GenServiceTask extends InvocationTask } } + /** Used to track services for which we should not generate a provider + * interface. */ + public class Providerless + { + public void setService (String className) + { + _providerless.add(className); + } + } + + // documentation inherited + public Providerless createProviderless () + { + return new Providerless(); + } + // documentation inherited protected void processService (File source, Class service) { @@ -133,8 +150,10 @@ public class GenServiceTask extends InvocationTask imports.keySet().iterator()); generateDispatcher(source, sname, spackage, methods, imports.keySet().iterator()); - generateProvider(source, sname, spackage, methods, listeners, - imports.keySet().iterator()); + if (!_providerless.contains(sname)) { + generateProvider(source, sname, spackage, methods, listeners, + imports.keySet().iterator()); + } } protected void generateMarshaller ( @@ -260,6 +279,9 @@ public class GenServiceTask extends InvocationTask } } + /** Services for which we should not generate provider interfaces. */ + protected HashSet _providerless = new HashSet(); + /** Specifies the path to the marshaller template. */ protected static final String MARSHALLER_TMPL = "com/threerings/presents/tools/marshaller.tmpl"; diff --git a/src/java/com/threerings/presents/tools/provider.tmpl b/src/java/com/threerings/presents/tools/provider.tmpl index 8d329001b..9d950bd1c 100644 --- a/src/java/com/threerings/presents/tools/provider.tmpl +++ b/src/java/com/threerings/presents/tools/provider.tmpl @@ -10,15 +10,14 @@ import $import; public interface ${name}Provider extends InvocationProvider { #foreach ($m in $methods) +#if ($velocityCount > 1) + +#end /** * Handles a {@link ${name}Service#$m.method.name} request. */ -#if ($m.listenerArgs.size() > 0) - public void $m.method.name (ClientObject caller, $m.getArgList(true)) - throws InvocationException; -#else - public void $m.method.name (ClientObject caller, $m.getArgList(true)); -#end + public void $m.method.name (ClientObject caller#if ($m.hasArgs()), #end$m.getArgList(true))#if ($m.listenerArgs.size() > 0) + throws InvocationException#end; #end }