diff --git a/src/java/com/threerings/presents/tools/GenServiceTask.java b/src/java/com/threerings/presents/tools/GenServiceTask.java index c9c730a43..009bf15f0 100644 --- a/src/java/com/threerings/presents/tools/GenServiceTask.java +++ b/src/java/com/threerings/presents/tools/GenServiceTask.java @@ -197,7 +197,7 @@ public class GenServiceTask extends InvocationTask imports.swapInnerClassesForParents(); // remove imports in our own package - imports.removeAll(mpackage + ".*"); + imports.removeSamePackage(mpackage); VelocityContext ctx = new VelocityContext(); ctx.put("name", name); @@ -274,7 +274,7 @@ public class GenServiceTask extends InvocationTask imports.removeArrays(); // remove imports in our own package - imports.removeAll(mpackage + ".*"); + imports.removeSamePackage(mpackage); ctx.put("imports", imports.toList()); @@ -316,7 +316,7 @@ public class GenServiceTask extends InvocationTask imports.removeGlobals(); // remove imports in our own package - imports.removeAll(mpackage + ".*"); + imports.removeSamePackage(mpackage); ctx.put("imports", imports.toList()); ctx.put("listener", listener); @@ -364,7 +364,7 @@ public class GenServiceTask extends InvocationTask imports.translateInnerClasses(); // remove imports in our own package - imports.removeAll(sdesc.spackage + ".*"); + imports.removeSamePackage(sdesc.spackage); ctx.put("imports", imports.toList()); ctx.put("package", sdesc.spackage); @@ -406,7 +406,7 @@ public class GenServiceTask extends InvocationTask imports.removeGlobals(); // remove imports in our own package - imports.removeAll(sdesc.spackage + ".*"); + imports.removeSamePackage(sdesc.spackage); ctx.put("imports", imports.toList()); ctx.put("listener", listener); @@ -468,7 +468,7 @@ public class GenServiceTask extends InvocationTask imports.swapInnerClassesForParents(); // remove imports in our own package - imports.removeAll(dpackage + ".*"); + imports.removeSamePackage(dpackage); VelocityContext ctx = new VelocityContext(); ctx.put("name", name); @@ -528,7 +528,7 @@ public class GenServiceTask extends InvocationTask imports.swapInnerClassesForParents(); // remove imports in our own package - imports.removeAll(mpackage + ".*"); + imports.removeSamePackage(mpackage); VelocityContext ctx = new VelocityContext(); ctx.put("name", name); diff --git a/src/java/com/threerings/presents/tools/ImportSet.java b/src/java/com/threerings/presents/tools/ImportSet.java index 81a92bba9..42321019e 100644 --- a/src/java/com/threerings/presents/tools/ImportSet.java +++ b/src/java/com/threerings/presents/tools/ImportSet.java @@ -126,6 +126,22 @@ public class ImportSet return removeAll("[*"); } + /** + * Remove all classes that are in the same package. + * @param pkg package to remove + */ + public void removeSamePackage (String pkg) + { + Iterator i = _imports.iterator(); + while (i.hasNext()) { + String name = i.next(); + if (name.startsWith(pkg) && + name.indexOf('.', pkg.length() + 1) == -1) { + i.remove(); + } + } + } + /** * Replaces inner class imports (those with a '$') with an import of the parent class. */