Browse Source

Change more List#contains() cases, most of the changes are unlikely to have a real performance impact since the lists usually are too small

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@910889 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 15 years ago
parent
commit
d58f4d380b
9 changed files with 37 additions and 33 deletions
  1. +2
    -1
      src/main/org/apache/tools/ant/Project.java
  2. +1
    -1
      src/main/org/apache/tools/ant/input/InputRequest.java
  3. +4
    -3
      src/main/org/apache/tools/ant/input/MultipleChoiceInputRequest.java
  4. +9
    -6
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  5. +7
    -6
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java
  6. +6
    -4
      src/main/org/apache/tools/ant/taskdefs/optional/ssh/Directory.java
  7. +2
    -1
      src/main/org/apache/tools/ant/types/FilterSet.java
  8. +4
    -10
      src/main/org/apache/tools/ant/util/CompositeMapper.java
  9. +2
    -1
      src/main/org/apache/tools/ant/util/depend/AbstractAnalyzer.java

+ 2
- 1
src/main/org/apache/tools/ant/Project.java View File

@@ -48,6 +48,7 @@ import org.apache.tools.ant.util.CollectionUtils;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.JavaEnvUtils; import org.apache.tools.ant.util.JavaEnvUtils;
import org.apache.tools.ant.util.StringUtils; import org.apache.tools.ant.util.StringUtils;
import org.apache.tools.ant.util.VectorSet;


/** /**
* Central representation of an Ant project. This class defines an * Central representation of an Ant project. This class defines an
@@ -1799,7 +1800,7 @@ public class Project implements ResourceFactory {
*/ */
public final Vector topoSort(String[] root, Hashtable targetTable, public final Vector topoSort(String[] root, Hashtable targetTable,
boolean returnAll) throws BuildException { boolean returnAll) throws BuildException {
Vector ret = new Vector();
Vector ret = new VectorSet();
Hashtable state = new Hashtable(); Hashtable state = new Hashtable();
Stack visiting = new Stack(); Stack visiting = new Stack();




+ 1
- 1
src/main/org/apache/tools/ant/input/InputRequest.java View File

@@ -24,7 +24,7 @@ package org.apache.tools.ant.input;
* @since Ant 1.5 * @since Ant 1.5
*/ */
public class InputRequest { public class InputRequest {
private String prompt;
private final String prompt;
private String input; private String input;
private String defaultValue; private String defaultValue;




+ 4
- 3
src/main/org/apache/tools/ant/input/MultipleChoiceInputRequest.java View File

@@ -18,6 +18,7 @@


package org.apache.tools.ant.input; package org.apache.tools.ant.input;


import java.util.LinkedHashSet;
import java.util.Vector; import java.util.Vector;


/** /**
@@ -26,7 +27,7 @@ import java.util.Vector;
* @since Ant 1.5 * @since Ant 1.5
*/ */
public class MultipleChoiceInputRequest extends InputRequest { public class MultipleChoiceInputRequest extends InputRequest {
private Vector choices = new Vector();
private final LinkedHashSet choices;


/** /**
* @param prompt The prompt to show to the user. Must not be null. * @param prompt The prompt to show to the user. Must not be null.
@@ -38,14 +39,14 @@ public class MultipleChoiceInputRequest extends InputRequest {
if (choices == null) { if (choices == null) {
throw new IllegalArgumentException("choices must not be null"); throw new IllegalArgumentException("choices must not be null");
} }
this.choices = choices;
this.choices = new LinkedHashSet(choices);
} }


/** /**
* @return The possible values. * @return The possible values.
*/ */
public Vector getChoices() { public Vector getChoices() {
return choices;
return new Vector(choices);
} }


/** /**


+ 9
- 6
src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java View File

@@ -32,10 +32,12 @@ import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Iterator; import java.util.Iterator;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.Vector; import java.util.Vector;


@@ -54,6 +56,7 @@ import org.apache.tools.ant.types.selectors.SelectorUtils;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.RetryHandler; import org.apache.tools.ant.util.RetryHandler;
import org.apache.tools.ant.util.Retryable; import org.apache.tools.ant.util.Retryable;
import org.apache.tools.ant.util.VectorSet;


/** /**
* Basic FTP client. Performs the following actions: * Basic FTP client. Performs the following actions:
@@ -116,7 +119,7 @@ public class FTP extends Task implements FTPTaskConfig {
private boolean timeDiffAuto = false; private boolean timeDiffAuto = false;
private int action = SEND_FILES; private int action = SEND_FILES;
private Vector filesets = new Vector(); private Vector filesets = new Vector();
private Vector dirCache = new Vector();
private Set dirCache = new HashSet();
private int transferred = 0; private int transferred = 0;
private String remoteFileSep = "/"; private String remoteFileSep = "/";
private int port = DEFAULT_FTP_PORT; private int port = DEFAULT_FTP_PORT;
@@ -354,12 +357,12 @@ public class FTP extends Task implements FTPTaskConfig {
excludes = new String[0]; excludes = new String[0];
} }


filesIncluded = new Vector();
filesIncluded = new VectorSet();
filesNotIncluded = new Vector(); filesNotIncluded = new Vector();
filesExcluded = new Vector();
dirsIncluded = new Vector();
filesExcluded = new VectorSet();
dirsIncluded = new VectorSet();
dirsNotIncluded = new Vector(); dirsNotIncluded = new Vector();
dirsExcluded = new Vector();
dirsExcluded = new VectorSet();


try { try {
String cwd = ftp.printWorkingDirectory(); String cwd = ftp.printWorkingDirectory();
@@ -1919,7 +1922,7 @@ public class FTP extends Task implements FTPTaskConfig {
+ "directory: " + ftp.getReplyString()); + "directory: " + ftp.getReplyString());
} }
} }
dirCache.addElement(dir);
dirCache.add(dir);
} }
ftp.changeWorkingDirectory(cwd); ftp.changeWorkingDirectory(cwd);
} }


+ 7
- 6
src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java View File

@@ -50,6 +50,7 @@ import org.apache.tools.ant.types.selectors.SelectorUtils;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.RetryHandler; import org.apache.tools.ant.util.RetryHandler;
import org.apache.tools.ant.util.Retryable; import org.apache.tools.ant.util.Retryable;
import org.apache.tools.ant.util.VectorSet;


public class FTPTaskMirrorImpl implements FTPTaskMirror { public class FTPTaskMirrorImpl implements FTPTaskMirror {


@@ -63,7 +64,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();


private final FTPTask task; private final FTPTask task;
private Vector dirCache = new Vector();
private Set dirCache = new HashSet();
private int transferred = 0; private int transferred = 0;
private int skipped = 0; private int skipped = 0;


@@ -257,12 +258,12 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
excludes = new String[0]; excludes = new String[0];
} }


filesIncluded = new Vector();
filesIncluded = new VectorSet();
filesNotIncluded = new Vector(); filesNotIncluded = new Vector();
filesExcluded = new Vector();
dirsIncluded = new Vector();
filesExcluded = new VectorSet();
dirsIncluded = new VectorSet();
dirsNotIncluded = new Vector(); dirsNotIncluded = new Vector();
dirsExcluded = new Vector();
dirsExcluded = new VectorSet();


try { try {
String cwd = ftp.printWorkingDirectory(); String cwd = ftp.printWorkingDirectory();
@@ -1310,7 +1311,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
+ "directory: " + ftp.getReplyString()); + "directory: " + ftp.getReplyString());
} }
} }
dirCache.addElement(dir);
dirCache.add(dir);
} }
ftp.changeWorkingDirectory(cwd); ftp.changeWorkingDirectory(cwd);
} }


+ 6
- 4
src/main/org/apache/tools/ant/taskdefs/optional/ssh/Directory.java View File

@@ -20,6 +20,8 @@ package org.apache.tools.ant.taskdefs.optional.ssh;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.io.File; import java.io.File;


@@ -29,7 +31,7 @@ import java.io.File;
public class Directory { public class Directory {


private File directory; private File directory;
private ArrayList childDirectories;
private Set childDirectories;
private ArrayList files; private ArrayList files;
private Directory parent; private Directory parent;


@@ -48,7 +50,7 @@ public class Directory {
*/ */
public Directory(File directory , Directory parent) { public Directory(File directory , Directory parent) {
this.parent = parent; this.parent = parent;
this.childDirectories = new ArrayList();
this.childDirectories = new LinkedHashSet();
this.files = new ArrayList(); this.files = new ArrayList();
this.directory = directory; this.directory = directory;
} }
@@ -117,8 +119,8 @@ public class Directory {
* @return the child directory, or null if not found * @return the child directory, or null if not found
*/ */
public Directory getChild(File dir) { public Directory getChild(File dir) {
for (int i = 0; i < childDirectories.size(); i++) {
Directory current = (Directory) childDirectories.get(i);
for (Iterator i = childDirectories.iterator(); i.hasNext(); ) {
Directory current = (Directory) i.next();
if (current.getDirectory().equals(dir)) { if (current.getDirectory().equals(dir)) {
return current; return current;
} }


+ 2
- 1
src/main/org/apache/tools/ant/types/FilterSet.java View File

@@ -27,6 +27,7 @@ import java.util.Vector;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.VectorSet;


/** /**
* A set of filters to be applied to something. * A set of filters to be applied to something.
@@ -575,7 +576,7 @@ public class FilterSet extends DataType implements Cloneable {
String beginToken = getBeginToken(); String beginToken = getBeginToken();
String endToken = getEndToken(); String endToken = getEndToken();
if (recurseDepth == 0) { if (recurseDepth == 0) {
passedTokens = new Vector();
passedTokens = new VectorSet();
} }
recurseDepth++; recurseDepth++;
if (passedTokens.contains(parent) && !duplicateToken) { if (passedTokens.contains(parent) && !duplicateToken) {


+ 4
- 10
src/main/org/apache/tools/ant/util/CompositeMapper.java View File

@@ -17,10 +17,8 @@
*/ */
package org.apache.tools.ant.util; package org.apache.tools.ant.util;


import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedList;
import java.util.LinkedHashSet;


/** /**
* A <CODE>ContainerMapper</CODE> that unites the results of its constituent * A <CODE>ContainerMapper</CODE> that unites the results of its constituent
@@ -30,8 +28,7 @@ public class CompositeMapper extends ContainerMapper {


/** {@inheritDoc}. */ /** {@inheritDoc}. */
public String[] mapFileName(String sourceFileName) { public String[] mapFileName(String sourceFileName) {
HashSet results = new HashSet();
LinkedList sortedResults = new LinkedList();
LinkedHashSet results = new LinkedHashSet();


FileNameMapper mapper = null; FileNameMapper mapper = null;
for (Iterator mIter = getMappers().iterator(); mIter.hasNext();) { for (Iterator mIter = getMappers().iterator(); mIter.hasNext();) {
@@ -40,16 +37,13 @@ public class CompositeMapper extends ContainerMapper {
String[] mapped = mapper.mapFileName(sourceFileName); String[] mapped = mapper.mapFileName(sourceFileName);
if (mapped != null) { if (mapped != null) {
for (int i = 0; i < mapped.length; i++) { for (int i = 0; i < mapped.length; i++) {
if (!results.contains(mapped[i])) {
results.add(mapped[i]);
sortedResults.addLast(mapped[i]);
}
results.add(mapped[i]);
} }
} }
} }
} }
return (results.size() == 0) ? null return (results.size() == 0) ? null
: (String[]) sortedResults.toArray(new String[results.size()]);
: (String[]) results.toArray(new String[results.size()]);
} }


} }


+ 2
- 1
src/main/org/apache/tools/ant/util/depend/AbstractAnalyzer.java View File

@@ -22,6 +22,7 @@ import java.util.Enumeration;
import java.util.Vector; import java.util.Vector;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.util.VectorSet;


/** /**
* An abstract implementation of the analyzer interface providing support * An abstract implementation of the analyzer interface providing support
@@ -39,7 +40,7 @@ public abstract class AbstractAnalyzer implements DependencyAnalyzer {
private Path classPath = new Path(null); private Path classPath = new Path(null);


/** The list of root classes */ /** The list of root classes */
private Vector rootClasses = new Vector();
private final Vector rootClasses = new VectorSet();


/** true if dependencies have been determined */ /** true if dependencies have been determined */
private boolean determined = false; private boolean determined = false;


Loading…
Cancel
Save