Make sure invocation listeners are only added to the list once.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3245 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2004-11-26 23:19:29 +00:00
parent bf9582e31c
commit c43689b104
2 changed files with 10 additions and 3 deletions
@@ -62,6 +62,12 @@ public class GenServiceTask extends InvocationTask
return getName().compareTo(other.getName()); return getName().compareTo(other.getName());
} }
public boolean equals (Object other)
{
return getClass().equals(other.getClass()) &&
listener.equals(((ServiceListener)other).listener);
}
public String getName () public String getName ()
{ {
String name = simpleName(listener); String name = simpleName(listener);
@@ -113,8 +119,8 @@ public class GenServiceTask extends InvocationTask
for (int aa = 0; aa < args.length; aa++) { for (int aa = 0; aa < args.length; aa++) {
if (_ilistener.isAssignableFrom(args[aa]) && if (_ilistener.isAssignableFrom(args[aa]) &&
simpleName(args[aa]).startsWith(sname + ".")) { simpleName(args[aa]).startsWith(sname + ".")) {
listeners.add(new ServiceListener( checkedAdd(listeners, new ServiceListener(
service, args[aa], imports)); service, args[aa], imports));
} }
} }
methods.add(new ServiceMethod(service, m, imports)); methods.add(new ServiceMethod(service, m, imports));
@@ -13,6 +13,7 @@ import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@@ -353,7 +354,7 @@ public abstract class InvocationTask extends Task
FileUtils.writeStringToFile(new File(path), data, "UTF-8"); FileUtils.writeStringToFile(new File(path), data, "UTF-8");
} }
protected static void checkedAdd (SortableArrayList list, String value) protected static void checkedAdd (List list, Object value)
{ {
if (!list.contains(value)) { if (!list.contains(value)) {
list.add(value); list.add(value);