From 8eef2df364e33fcc24dfc9fbfaa2064da86936b5 Mon Sep 17 00:00:00 2001 From: Jamie Doornbos Date: Thu, 8 May 2008 19:30:55 +0000 Subject: [PATCH] Fixed same package removal to not also wipe out subpackages git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5052 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/tools/GenServiceTask.java | 14 +++++++------- .../com/threerings/presents/tools/ImportSet.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) 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. */