diff --git a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java index 599fb8fee..8ec0f0bde 100644 --- a/src/main/org/apache/tools/ant/helper/ProjectHelper2.java +++ b/src/main/org/apache/tools/ant/helper/ProjectHelper2.java @@ -104,7 +104,7 @@ public class ProjectHelper2 extends ProjectHelper { */ public UnknownElement parseAntlibDescriptor(Project containingProject, Resource resource) { - URLProvider up = (URLProvider) resource.as(URLProvider.class); + URLProvider up = resource.as(URLProvider.class); if (up == null) { throw new BuildException("Unsupported resource type: " + resource); } @@ -235,12 +235,12 @@ public class ProjectHelper2 extends ProjectHelper { url = (URL) source; } else if (source instanceof Resource) { FileProvider fp = - (FileProvider) ((Resource) source).as(FileProvider.class); + ((Resource) source).as(FileProvider.class); if (fp != null) { buildFile = fp.getFile(); } else { URLProvider up = - (URLProvider) ((Resource) source).as(URLProvider.class); + ((Resource) source).as(URLProvider.class); if (up != null) { url = up.getURL(); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Checksum.java b/src/main/org/apache/tools/ant/taskdefs/Checksum.java index 34ebc3d4a..84f51a475 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Checksum.java +++ b/src/main/org/apache/tools/ant/taskdefs/Checksum.java @@ -30,7 +30,6 @@ import java.io.IOException; import java.util.Comparator; import java.util.HashMap; import java.util.Map; -import java.util.Iterator; import java.util.Hashtable; import java.util.Enumeration; import java.util.Set; @@ -394,9 +393,8 @@ public class Checksum extends MatchingTask implements Condition { } try { if (resources != null) { - for (Iterator i = resources.iterator(); i.hasNext();) { - Resource r = (Resource) i.next(); - File src = ((FileProvider) r.as(FileProvider.class)) + for (Resource r : resources) { + File src = r.as(FileProvider.class) .getFile(); if (totalproperty != null || todir != null) { // Use '/' to calculate digest based on file name. diff --git a/src/main/org/apache/tools/ant/taskdefs/CloseResources.java b/src/main/org/apache/tools/ant/taskdefs/CloseResources.java index 29b0caedc..07b93a778 100644 --- a/src/main/org/apache/tools/ant/taskdefs/CloseResources.java +++ b/src/main/org/apache/tools/ant/taskdefs/CloseResources.java @@ -20,7 +20,6 @@ package org.apache.tools.ant.taskdefs; import java.io.IOException; import java.net.URL; -import java.util.Iterator; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; @@ -44,9 +43,8 @@ public class CloseResources extends Task { } public void execute() { - for (Iterator it = resources.iterator(); it.hasNext(); ) { - Resource r = (Resource) it.next(); - URLProvider up = (URLProvider) r.as(URLProvider.class); + for (Resource r : resources) { + URLProvider up = r.as(URLProvider.class); if (up != null) { URL u = up.getURL(); try { diff --git a/src/main/org/apache/tools/ant/taskdefs/Concat.java b/src/main/org/apache/tools/ant/taskdefs/Concat.java index 1424e20d6..49794e85c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Concat.java +++ b/src/main/org/apache/tools/ant/taskdefs/Concat.java @@ -814,9 +814,9 @@ public class Concat extends Task implements ResourceCollection { * Implement ResourceCollection. * @return Iterator. */ - public Iterator iterator() { + public Iterator iterator() { validate(); - return Collections.singletonList(new ConcatResource(getResources())).iterator(); + return Collections.singletonList(new ConcatResource(getResources())).iterator(); } /** @@ -905,8 +905,8 @@ public class Concat extends Task implements ResourceCollection { Restrict noexistRc = new Restrict(); noexistRc.add(NOT_EXISTS); noexistRc.add(rc); - for (Iterator i = noexistRc.iterator(); i.hasNext();) { - log(i.next() + " does not exist.", Project.MSG_ERR); + for (Resource r : noexistRc) { + log(r + " does not exist.", Project.MSG_ERR); } Restrict result = new Restrict(); result.add(EXISTS); @@ -918,8 +918,7 @@ public class Concat extends Task implements ResourceCollection { if (dest == null || forceOverwrite) { return false; } - for (Iterator i = c.iterator(); i.hasNext();) { - Resource r = (Resource) i.next(); + for (Resource r : c) { if (SelectorUtils.isOutOfDate(r, dest, FILE_UTILS.getFileTimestampGranularity())) { return false; } diff --git a/src/main/org/apache/tools/ant/taskdefs/Copy.java b/src/main/org/apache/tools/ant/taskdefs/Copy.java index 72bcaba7e..e4f2f4c83 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Copy.java +++ b/src/main/org/apache/tools/ant/taskdefs/Copy.java @@ -517,9 +517,7 @@ public class Copy extends Task { "Only FileSystem resources are supported."); } - Iterator resources = rc.iterator(); - while (resources.hasNext()) { - Resource r = (Resource) resources.next(); + for (Resource r : rc) { if (!r.isExists()) { String message = "Warning: Could not find resource " + r.toLongString() + " to copy."; @@ -535,7 +533,7 @@ public class Copy extends Task { File baseDir = NULL_FILE_PLACEHOLDER; String name = r.getName(); - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { FileResource fr = ResourceUtils.asFileResource(fp); baseDir = getKeyFile(fr.getBaseDir()); @@ -702,8 +700,8 @@ public class Copy extends Task { if (rc.size() == 0) { throw new BuildException(MSG_WHEN_COPYING_EMPTY_RC_TO_FILE); } else if (rc.size() == 1) { - Resource res = (Resource) rc.iterator().next(); - FileProvider r = (FileProvider) res.as(FileProvider.class); + Resource res = rc.iterator().next(); + FileProvider r = res.as(FileProvider.class); if (file == null) { if (r != null) { file = r.getFile(); diff --git a/src/main/org/apache/tools/ant/taskdefs/Delete.java b/src/main/org/apache/tools/ant/taskdefs/Delete.java index 783728258..a0caddc61 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Delete.java +++ b/src/main/org/apache/tools/ant/taskdefs/Delete.java @@ -95,7 +95,7 @@ public class Delete extends MatchingTask { this.dirs = dirs; Arrays.sort(this.dirs, REVERSE); } - public Iterator iterator() { + public Iterator iterator() { return new FileResourceIterator(project, basedir, dirs); } public boolean isFilesystemOnly() { return true; } @@ -640,7 +640,7 @@ public class Delete extends MatchingTask { public int size() { return files.length; } - public Iterator iterator() { + public Iterator iterator() { return new FileResourceIterator(getProject(), fsDir, files); } @@ -683,11 +683,10 @@ public class Delete extends MatchingTask { } try { if (resourcesToDelete.isFilesystemOnly()) { - for (Iterator iter = resourcesToDelete.iterator(); iter.hasNext();) { + for (Resource r : resourcesToDelete) { // nonexistent resources could only occur if we already // deleted something from a fileset: - Resource r = (Resource) iter.next(); - File f = ((FileProvider) r.as(FileProvider.class)) + File f = r.as(FileProvider.class) .getFile(); if (!f.exists()) { continue; diff --git a/src/main/org/apache/tools/ant/taskdefs/DependSet.java b/src/main/org/apache/tools/ant/taskdefs/DependSet.java index 9635347f0..87f390b5e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/DependSet.java +++ b/src/main/org/apache/tools/ant/taskdefs/DependSet.java @@ -101,7 +101,7 @@ public class DependSet extends MatchingTask { private HideMissingBasedir(FileSet fs) { this.fs = fs; } - public Iterator iterator() { + public Iterator iterator() { return basedirExists() ? fs.iterator() : Resources.EMPTY_ITERATOR; } public int size() { @@ -252,20 +252,20 @@ public class DependSet extends MatchingTask { Restrict r = new Restrict(); r.add(rsel); r.add(rc); - for (Iterator i = r.iterator(); i.hasNext();) { - log("Warning: " + i.next() + " modified in the future.", Project.MSG_WARN); + for (Resource res : r) { + log("Warning: " + res + " modified in the future.", Project.MSG_WARN); } } private Resource getXest(ResourceCollection rc, ResourceComparator c) { - Iterator i = rc.iterator(); + Iterator i = rc.iterator(); if (!i.hasNext()) { return null; } - Resource xest = (Resource) i.next(); + Resource xest = i.next(); while (i.hasNext()) { - Resource next = (Resource) i.next(); + Resource next = i.next(); if (c.compare(xest, next) < 0) { xest = next; } @@ -289,8 +289,7 @@ public class DependSet extends MatchingTask { private void logMissing(ResourceCollection missing, String what) { if (verbose) { - for (Iterator i = missing.iterator(); i.hasNext(); ) { - Resource r = (Resource) i.next(); + for (Resource r : missing) { log("Expected " + what + " " + r.toLongString() + " is missing."); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Echo.java b/src/main/org/apache/tools/ant/taskdefs/Echo.java index 91b82e1da..2086b41dc 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Echo.java +++ b/src/main/org/apache/tools/ant/taskdefs/Echo.java @@ -103,7 +103,7 @@ public class Echo extends Task { throw new BuildException("Cannot set > 1 output target"); } this.output = output; - FileProvider fp = (FileProvider) output.as(FileProvider.class); + FileProvider fp = output.as(FileProvider.class); this.file = fp != null ? fp.getFile() : null; } diff --git a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java index ca4f2c67f..68c923ffb 100644 --- a/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java +++ b/src/main/org/apache/tools/ant/taskdefs/ExecuteOn.java @@ -21,7 +21,6 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.io.IOException; import java.util.HashSet; -import java.util.Iterator; import java.util.Vector; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; @@ -417,9 +416,7 @@ public class ExecuteOn extends ExecTask { } if (resources != null) { - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource res = (Resource) iter.next(); + for (Resource res : resources) { if (!res.isExists() && ignoreMissing) { continue; @@ -427,7 +424,7 @@ public class ExecuteOn extends ExecTask { File base = null; String name = res.getName(); - FileProvider fp = (FileProvider) res.as(FileProvider.class); + FileProvider fp = res.as(FileProvider.class); if (fp != null) { FileResource fr = ResourceUtils.asFileResource(fp); base = fr.getBaseDir(); diff --git a/src/main/org/apache/tools/ant/taskdefs/Expand.java b/src/main/org/apache/tools/ant/taskdefs/Expand.java index 696cbbf08..13515fbca 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Expand.java +++ b/src/main/org/apache/tools/ant/taskdefs/Expand.java @@ -132,15 +132,13 @@ public class Expand extends Task { expandFile(FILE_UTILS, source, dest); } } - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : resources) { if (!r.isExists()) { log("Skipping '" + r.getName() + "' because it doesn't exist."); continue; } - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { expandFile(FILE_UTILS, fp.getFile(), dest); } else { diff --git a/src/main/org/apache/tools/ant/taskdefs/Get.java b/src/main/org/apache/tools/ant/taskdefs/Get.java index 5e5213427..858cb073f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Get.java +++ b/src/main/org/apache/tools/ant/taskdefs/Get.java @@ -29,7 +29,6 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.util.Date; -import java.util.Iterator; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; @@ -84,9 +83,8 @@ public class Get extends Task { public void execute() throws BuildException { checkAttributes(); - for (Iterator iter = sources.iterator(); iter.hasNext(); ) { - Resource r = (Resource) iter.next(); - URLProvider up = (URLProvider) r.as(URLProvider.class); + for (Resource r : sources) { + URLProvider up = r.as(URLProvider.class); URL source = up.getURL(); File dest = destination; @@ -157,9 +155,8 @@ public class Get extends Task { public boolean doGet(int logLevel, DownloadProgress progress) throws IOException { checkAttributes(); - for (Iterator iter = sources.iterator(); iter.hasNext(); ) { - Resource r = (Resource) iter.next(); - URLProvider up = (URLProvider) r.as(URLProvider.class); + for (Resource r : sources) { + URLProvider up = r.as(URLProvider.class); URL source = up.getURL(); return doGet(source, destination, logLevel, progress); } @@ -251,8 +248,8 @@ public class Get extends Task { throw new BuildException("at least one source is required", getLocation()); } - for (Iterator iter = sources.iterator(); iter.hasNext(); ) { - Object up = ((Resource) iter.next()).as(URLProvider.class); + for (Resource r : sources) { + URLProvider up = r.as(URLProvider.class); if (up == null) { throw new BuildException("Only URLProvider resources are" + " supported", getLocation()); diff --git a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java index 50487f6f4..ae118db09 100644 --- a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java @@ -159,8 +159,8 @@ public class ImportTask extends Task { if (fromFileAttribute != null) { resources.add(fromFileAttribute); } - for (Iterator i = resourcesToImport.iterator(); i.hasNext(); ) { - importResource(helper, (Resource) i.next()); + for (Resource r : resourcesToImport) { + importResource(helper, r); } } @@ -184,7 +184,7 @@ public class ImportTask extends Task { } File importedFile = null; - FileProvider fp = (FileProvider) importedResource.as(FileProvider.class); + FileProvider fp = importedResource.as(FileProvider.class); if (fp != null) { importedFile = fp.getFile(); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java index 00a8e1524..b91a06a66 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java +++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java @@ -2307,11 +2307,8 @@ public class Javadoc extends Task { rc = fs2; } } - Iterator iter = rc.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); - sf.addElement(new SourceFile(((FileProvider) r.as(FileProvider.class)) - .getFile())); + for (Resource r : rc) { + sf.addElement(new SourceFile(r.as(FileProvider.class).getFile())); } } } diff --git a/src/main/org/apache/tools/ant/taskdefs/Length.java b/src/main/org/apache/tools/ant/taskdefs/Length.java index 644843147..245c8500c 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Length.java +++ b/src/main/org/apache/tools/ant/taskdefs/Length.java @@ -230,8 +230,7 @@ public class Length extends Task implements Condition { } private void handleResources(Handler h) { - for (Iterator i = resources.iterator(); i.hasNext();) { - Resource r = (Resource) i.next(); + for (Resource r : resources) { if (!r.isExists()) { log(r + " does not exist", Project.MSG_WARN); } diff --git a/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java b/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java index 65092c71f..49b738eab 100644 --- a/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java +++ b/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java @@ -232,7 +232,7 @@ public class LoadProperties extends Task { throw new BuildException( "only single-element resource collections are supported"); } - src = (Resource) a.iterator().next(); + src = a.iterator().next(); } private synchronized JavaResource getRequiredJavaResource() { diff --git a/src/main/org/apache/tools/ant/taskdefs/LoadResource.java b/src/main/org/apache/tools/ant/taskdefs/LoadResource.java index 5b45879fd..753203a15 100644 --- a/src/main/org/apache/tools/ant/taskdefs/LoadResource.java +++ b/src/main/org/apache/tools/ant/taskdefs/LoadResource.java @@ -229,7 +229,7 @@ public class LoadResource extends Task { throw new BuildException("only single argument resource collections" + " are supported"); } - src = (Resource) a.iterator().next(); + src = a.iterator().next(); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/Pack.java b/src/main/org/apache/tools/ant/taskdefs/Pack.java index d2c50f47d..a52e5a989 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Pack.java +++ b/src/main/org/apache/tools/ant/taskdefs/Pack.java @@ -75,7 +75,7 @@ public abstract class Pack extends Task { if (src.isDirectory()) { throw new BuildException("the source can't be a directory"); } - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { source = fp.getFile(); } else if (!supportsNonFileResources()) { @@ -98,7 +98,7 @@ public abstract class Pack extends Task { + " cannot handle multiple resources at once. (" + a.size() + " resources were selected.)"); } - setSrcResource((Resource) a.iterator().next()); + setSrcResource(a.iterator().next()); } /** diff --git a/src/main/org/apache/tools/ant/taskdefs/PathConvert.java b/src/main/org/apache/tools/ant/taskdefs/PathConvert.java index 82d5d6ea2..003fde1a5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/PathConvert.java +++ b/src/main/org/apache/tools/ant/taskdefs/PathConvert.java @@ -32,6 +32,7 @@ import org.apache.tools.ant.types.Mapper; import org.apache.tools.ant.types.Reference; import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.EnumeratedAttribute; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.resources.Resources; import org.apache.tools.ant.types.resources.Union; import org.apache.tools.ant.util.FileNameMapper; @@ -361,8 +362,8 @@ public class PathConvert extends Task { ResourceCollection resources = isPreserveDuplicates() ? (ResourceCollection) path : new Union(path); List ret = new ArrayList(); FileNameMapper mapperImpl = mapper == null ? new IdentityMapper() : mapper.getImplementation(); - for (Iterator iter = resources.iterator(); iter.hasNext(); ) { - String[] mapped = mapperImpl.mapFileName(String.valueOf(iter.next())); + for (Resource r : resources) { + String[] mapped = mapperImpl.mapFileName(String.valueOf(r)); for (int m = 0; mapped != null && m < mapped.length; ++m) { ret.add(mapped[m]); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Replace.java b/src/main/org/apache/tools/ant/taskdefs/Replace.java index 4ae791cde..03ab593b6 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Replace.java +++ b/src/main/org/apache/tools/ant/taskdefs/Replace.java @@ -541,10 +541,9 @@ public class Replace extends MatchingTask { } if (resources != null) { - for (Iterator i = resources.iterator(); i.hasNext(); ) { + for (Resource r : resources) { FileProvider fp = - (FileProvider) ((Resource) i.next()) - .as(FileProvider.class); + r.as(FileProvider.class); processFile(fp.getFile()); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/SQLExec.java b/src/main/org/apache/tools/ant/taskdefs/SQLExec.java index 3fb4077e5..4515f501b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/SQLExec.java +++ b/src/main/org/apache/tools/ant/taskdefs/SQLExec.java @@ -597,9 +597,7 @@ public class SQLExec extends JDBCTask { if (resources != null) { // deal with the resources - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : resources) { // Make a transaction for each resource Transaction t = createTransaction(); t.setSrcResource(r); @@ -623,13 +621,13 @@ public class SQLExec extends JDBCTask { log("Opening PrintStream to output Resource " + output, Project.MSG_VERBOSE); OutputStream os = null; FileProvider fp = - (FileProvider) output.as(FileProvider.class); + output.as(FileProvider.class); if (fp != null) { os = new FileOutputStream(fp.getFile(), append); } else { if (append) { Appendable a = - (Appendable) output.as(Appendable.class); + output.as(Appendable.class); if (a != null) { os = a.getAppendOutputStream(); } @@ -1030,7 +1028,7 @@ public class SQLExec extends JDBCTask { throw new BuildException("only single argument resource " + "collections are supported."); } - setSrcResource((Resource) a.iterator().next()); + setSrcResource(a.iterator().next()); } /** diff --git a/src/main/org/apache/tools/ant/taskdefs/SignJar.java b/src/main/org/apache/tools/ant/taskdefs/SignJar.java index f7794c55e..a26caf2a4 100644 --- a/src/main/org/apache/tools/ant/taskdefs/SignJar.java +++ b/src/main/org/apache/tools/ant/taskdefs/SignJar.java @@ -385,11 +385,9 @@ public class SignJar extends AbstractJarSignerTask { //and the mapper is ready to map from source dirs to dest files //now we iterate through every JAR giving source and dest names // deal with the paths - Iterator iter = sources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : sources) { FileResource fr = ResourceUtils - .asFileResource((FileProvider) r.as(FileProvider.class)); + .asFileResource(r.as(FileProvider.class)); //calculate our destination directory; it is either the destDir //attribute, or the base dir of the fileset (for in situ updates) diff --git a/src/main/org/apache/tools/ant/taskdefs/Tar.java b/src/main/org/apache/tools/ant/taskdefs/Tar.java index 41a2fd988..d621d8ccb 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Tar.java +++ b/src/main/org/apache/tools/ant/taskdefs/Tar.java @@ -568,11 +568,9 @@ public class Tar extends MatchingTask { } else if (rc.isFilesystemOnly()) { HashSet basedirs = new HashSet(); HashMap basedirToFilesMap = new HashMap(); - Iterator iter = rc.iterator(); - while (iter.hasNext()) { - Resource res = (Resource) iter.next(); + for (Resource res : rc) { FileResource r = ResourceUtils - .asFileResource((FileProvider) res.as(FileProvider.class)); + .asFileResource(res.as(FileProvider.class)); File base = r.getBaseDir(); if (base == null) { base = Copy.NULL_FILE_PLACEHOLDER; @@ -589,7 +587,7 @@ public class Tar extends MatchingTask { files.add(r.getName()); } } - iter = basedirs.iterator(); + Iterator iter = basedirs.iterator(); while (iter.hasNext()) { File base = (File) iter.next(); Vector f = (Vector) basedirToFilesMap.get(base); @@ -599,9 +597,9 @@ public class Tar extends MatchingTask { files); } } else { // non-file resources - Iterator iter = rc.iterator(); + Iterator iter = rc.iterator(); while (upToDate && iter.hasNext()) { - Resource r = (Resource) iter.next(); + Resource r = iter.next(); upToDate = archiveIsUpToDate(r); } } @@ -667,16 +665,12 @@ public class Tar extends MatchingTask { tarFile(f, tOut, name, tfs); } } else if (rc.isFilesystemOnly()) { - Iterator iter = rc.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); - File f = ((FileProvider) r.as(FileProvider.class)).getFile(); + for (Resource r : rc) { + File f = r.as(FileProvider.class).getFile(); tarFile(f, tOut, f.getName(), tfs); } } else { // non-file resources - Iterator iter = rc.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : rc) { tarResource(r, tOut, r.getName(), tfs); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/Touch.java b/src/main/org/apache/tools/ant/taskdefs/Touch.java index 36cc3365f..096d72773 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Touch.java +++ b/src/main/org/apache/tools/ant/taskdefs/Touch.java @@ -296,10 +296,8 @@ public class Touch extends Task { return; } // deal with the resource collections - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); - Touchable t = (Touchable) r.as(Touchable.class); + for (Resource r : resources) { + Touchable t = r.as(Touchable.class); if (t == null) { throw new BuildException("Can't touch " + r); } @@ -341,12 +339,12 @@ public class Touch extends Task { private void touch(Resource r, long defaultTimestamp) { if (fileNameMapper == null) { - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { // use this to create file and deal with non-writable files touch(fp.getFile(), defaultTimestamp); } else { - ((Touchable) r.as(Touchable.class)).touch(defaultTimestamp); + r.as(Touchable.class).touch(defaultTimestamp); } } else { String[] mapped = fileNameMapper.mapFileName(r.getName()); diff --git a/src/main/org/apache/tools/ant/taskdefs/Truncate.java b/src/main/org/apache/tools/ant/taskdefs/Truncate.java index 5ca5e0637..26f6a5caa 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Truncate.java +++ b/src/main/org/apache/tools/ant/taskdefs/Truncate.java @@ -126,9 +126,8 @@ public class Truncate extends Task { if (path == null) { throw new BuildException(NO_CHILD); } - for (Iterator it = path.iterator(); it.hasNext();) { - Resource r = (Resource) it.next(); - File f = ((FileProvider) r.as(FileProvider.class)).getFile(); + for (Resource r : path) { + File f = r.as(FileProvider.class).getFile(); if (shouldProcess(f)) { process(f); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Unpack.java b/src/main/org/apache/tools/ant/taskdefs/Unpack.java index 393ef9fb3..816582d92 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Unpack.java +++ b/src/main/org/apache/tools/ant/taskdefs/Unpack.java @@ -91,7 +91,7 @@ public abstract class Unpack extends Task { throw new BuildException( "the archive " + src.getName() + " can't be a directory"); } - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { source = fp.getFile(); } else if (!supportsNonFileResources()) { @@ -113,7 +113,7 @@ public abstract class Unpack extends Task { throw new BuildException("only single argument resource collections" + " are supported as archives"); } - setSrcResource((Resource) a.iterator().next()); + setSrcResource(a.iterator().next()); } /** diff --git a/src/main/org/apache/tools/ant/taskdefs/VerifyJar.java b/src/main/org/apache/tools/ant/taskdefs/VerifyJar.java index 5fd818d77..92f41893b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/VerifyJar.java +++ b/src/main/org/apache/tools/ant/taskdefs/VerifyJar.java @@ -89,10 +89,8 @@ public class VerifyJar extends AbstractJarSignerTask { try { Path sources = createUnifiedSourcePath(); - Iterator iter = sources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); - FileProvider fr = (FileProvider) r.as(FileProvider.class); + for (Resource r : sources) { + FileProvider fr = r.as(FileProvider.class); verifyOneJar(fr.getFile()); } diff --git a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java index 61d2b0af8..28167b5c1 100644 --- a/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java +++ b/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java @@ -19,7 +19,6 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.util.Enumeration; -import java.util.Iterator; import java.util.Vector; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.BuildException; @@ -277,7 +276,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { handleError("The style element must be specified with exactly one" + " nested resource."); } else { - setXslResource((Resource) rc.iterator().next()); + setXslResource(rc.iterator().next()); } } @@ -749,15 +748,13 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { * @since Ant 1.7 */ private void processResources(Resource stylesheet) { - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : resources) { if (!r.isExists()) { continue; } File base = baseDir; String name = r.getName(); - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { FileResource f = ResourceUtils.asFileResource(fp); base = f.getBaseDir(); @@ -1173,7 +1170,7 @@ public class XSLTProcess extends MatchingTask implements XSLTLogger { // a resource, but we can set it as a file. So, // we make an attempt to get it as a file FileProvider fp = - (FileProvider) stylesheet.as(FileProvider.class); + stylesheet.as(FileProvider.class); if (fp != null) { liaison.setStylesheet(fp.getFile()); } else { diff --git a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java index 0f9832d4d..4e37a31aa 100644 --- a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java +++ b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java @@ -244,7 +244,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver(getEntityResolver()); Document document = null; - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { document = builder.parse(fp.getFile()); } else { @@ -591,7 +591,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { throw new BuildException( "only single argument resource collections are supported as archives"); } - setSrcResource((Resource) a.iterator().next()); + setSrcResource(a.iterator().next()); } /** @@ -670,7 +670,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { * @return the file attribute. */ protected File getFile () { - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); return fp != null ? fp.getFile() : null; } @@ -681,7 +681,7 @@ public class XmlProperty extends org.apache.tools.ant.Task { // delegate this way around to support subclasses that // overwrite getFile File f = getFile(); - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); return f == null ? src : fp != null && fp.getFile().equals(f) ? src : new FileResource(f); } diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java index 53b809eea..2b0d66db5 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Zip.java +++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java @@ -1077,7 +1077,7 @@ public class Zip extends MatchingTask { continue; } File base = null; - FileProvider fp = (FileProvider) resources[i].as(FileProvider.class); + FileProvider fp = resources[i].as(FileProvider.class); if (fp != null) { base = ResourceUtils.asFileResource(fp).getBaseDir(); } @@ -1481,7 +1481,7 @@ public class Zip extends MatchingTask { for (int j = 0; j < initialResources[i].length; j++) { FileProvider fp = - (FileProvider) initialResources[i][j].as(FileProvider.class); + initialResources[i][j].as(FileProvider.class); if (fp != null && zipFile.equals(fp.getFile())) { throw new BuildException("A zip file cannot include " + "itself", getLocation()); @@ -1585,11 +1585,9 @@ public class Zip extends MatchingTask { protected Resource[][] grabNonFileSetResources(ResourceCollection[] rcs) { Resource[][] result = new Resource[rcs.length][]; for (int i = 0; i < rcs.length; i++) { - Iterator iter = rcs[i].iterator(); ArrayList dirs = new ArrayList(); ArrayList files = new ArrayList(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : rcs[i]) { if (r.isExists()) { if (r.isDirectory()) { dirs.add(r); diff --git a/src/main/org/apache/tools/ant/taskdefs/condition/ResourcesMatch.java b/src/main/org/apache/tools/ant/taskdefs/condition/ResourcesMatch.java index bc764fbb3..29e3e800b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/condition/ResourcesMatch.java +++ b/src/main/org/apache/tools/ant/taskdefs/condition/ResourcesMatch.java @@ -71,7 +71,7 @@ public class ResourcesMatch implements Condition { "You must specify one or more nested resource collections"); } if (resources.size() > 1) { - Iterator i = resources.iterator(); + Iterator i = resources.iterator(); Resource r1 = (Resource) i.next(); Resource r2 = null; diff --git a/src/main/org/apache/tools/ant/taskdefs/email/EmailTask.java b/src/main/org/apache/tools/ant/taskdefs/email/EmailTask.java index 5cc5dd32a..7016a6b93 100644 --- a/src/main/org/apache/tools/ant/taskdefs/email/EmailTask.java +++ b/src/main/org/apache/tools/ant/taskdefs/email/EmailTask.java @@ -531,11 +531,8 @@ public class EmailTask extends Task { // identify which files should be attached Vector files = new Vector(); if (attachments != null) { - Iterator iter = attachments.iterator(); - - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); - files.addElement(((FileProvider) r.as(FileProvider.class)) + for (Resource r : attachments) { + files.addElement(r.as(FileProvider.class) .getFile()); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java index c950294ef..b31d1d87a 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java @@ -520,9 +520,9 @@ public class ReplaceRegExp extends Task { } if (resources != null) { - for (Iterator i = resources.iterator(); i.hasNext(); ) { + for (Resource r : resources) { FileProvider fp = - (FileProvider) ((Resource) i.next()).as(FileProvider.class); + r.as(FileProvider.class); File f = fp.getFile(); if (f.exists()) { diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java index 338426291..c37db3779 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java @@ -267,11 +267,11 @@ public class TraXLiaison implements XSLTLiaison3, ErrorListener, XSLTLoggerAware } private String resourceToURI(Resource resource) { - FileProvider fp = (FileProvider) resource.as(FileProvider.class); + FileProvider fp = resource.as(FileProvider.class); if (fp != null) { return FILE_UTILS.toURI(fp.getFile().getAbsolutePath()); } - URLProvider up = (URLProvider) resource.as(URLProvider.class); + URLProvider up = resource.as(URLProvider.class); if (up != null) { URL u = up.getURL(); return String.valueOf(u); diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/BatchTest.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/BatchTest.java index 5feeafacf..64a7bc8d2 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/BatchTest.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/BatchTest.java @@ -144,9 +144,7 @@ public final class BatchTest extends BaseTest { */ private String[] getFilenames() { Vector v = new Vector(); - Iterator iter = resources.iterator(); - while (iter.hasNext()) { - Resource r = (Resource) iter.next(); + for (Resource r : resources) { if (r.isExists()) { String pathname = r.getName(); if (pathname.endsWith(".java")) { diff --git a/src/main/org/apache/tools/ant/types/ArchiveFileSet.java b/src/main/org/apache/tools/ant/types/ArchiveFileSet.java index 84427b43a..a5890a048 100644 --- a/src/main/org/apache/tools/ant/types/ArchiveFileSet.java +++ b/src/main/org/apache/tools/ant/types/ArchiveFileSet.java @@ -126,7 +126,7 @@ public abstract class ArchiveFileSet extends FileSet { throw new BuildException("only single argument resource collections" + " are supported as archives"); } - setSrcResource((Resource) a.iterator().next()); + setSrcResource(a.iterator().next()); } /** @@ -188,7 +188,7 @@ public abstract class ArchiveFileSet extends FileSet { } dieOnCircularReference(); if (src != null) { - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { return fp.getFile(); } @@ -308,7 +308,7 @@ public abstract class ArchiveFileSet extends FileSet { * @return Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((ResourceCollection) (getRef(getProject()))).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/ArchiveScanner.java b/src/main/org/apache/tools/ant/types/ArchiveScanner.java index c7ec2ae7e..da5a97d02 100644 --- a/src/main/org/apache/tools/ant/types/ArchiveScanner.java +++ b/src/main/org/apache/tools/ant/types/ArchiveScanner.java @@ -131,7 +131,7 @@ public abstract class ArchiveScanner extends DirectoryScanner { */ public void setSrc(Resource src) { this.src = src; - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { srcFile = fp.getFile(); } diff --git a/src/main/org/apache/tools/ant/types/DirSet.java b/src/main/org/apache/tools/ant/types/DirSet.java index 0440428f1..0c3a84725 100644 --- a/src/main/org/apache/tools/ant/types/DirSet.java +++ b/src/main/org/apache/tools/ant/types/DirSet.java @@ -63,7 +63,7 @@ public class DirSet extends AbstractFileSet implements ResourceCollection { * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((DirSet) getRef(getProject())).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/FileList.java b/src/main/org/apache/tools/ant/types/FileList.java index 8de213d74..3f127382c 100644 --- a/src/main/org/apache/tools/ant/types/FileList.java +++ b/src/main/org/apache/tools/ant/types/FileList.java @@ -188,7 +188,7 @@ public class FileList extends DataType implements ResourceCollection { * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((FileList) getRef(getProject())).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/FileSet.java b/src/main/org/apache/tools/ant/types/FileSet.java index bfb05ebb6..c6d2127d1 100644 --- a/src/main/org/apache/tools/ant/types/FileSet.java +++ b/src/main/org/apache/tools/ant/types/FileSet.java @@ -62,7 +62,7 @@ public class FileSet extends AbstractFileSet implements ResourceCollection { * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((FileSet) getRef(getProject())).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/Path.java b/src/main/org/apache/tools/ant/types/Path.java index c209b31d5..f124ed63b 100644 --- a/src/main/org/apache/tools/ant/types/Path.java +++ b/src/main/org/apache/tools/ant/types/Path.java @@ -121,7 +121,7 @@ public class Path extends DataType implements Cloneable, ResourceCollection { * Create an iterator. * @return an iterator. */ - public Iterator iterator() { + public Iterator iterator() { return new FileResourceIterator(getProject(), null, parts); } @@ -701,7 +701,7 @@ public class Path extends DataType implements Cloneable, ResourceCollection { * are added to this container while the Iterator is in use. * @return a "fail-fast" Iterator. */ - public final synchronized Iterator iterator() { + public final synchronized Iterator iterator() { if (isReference()) { return ((Path) getCheckedRef()).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/PropertySet.java b/src/main/org/apache/tools/ant/types/PropertySet.java index 4a94084c8..2267e0d12 100644 --- a/src/main/org/apache/tools/ant/types/PropertySet.java +++ b/src/main/org/apache/tools/ant/types/PropertySet.java @@ -502,7 +502,7 @@ public class PropertySet extends DataType implements ResourceCollection { * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return getRef().iterator(); } @@ -514,11 +514,11 @@ public class PropertySet extends DataType implements ResourceCollection { final FileNameMapper m = myMapper == null ? null : myMapper.getImplementation(); final Iterator iter = names.iterator(); - return new Iterator() { + return new Iterator() { public boolean hasNext() { return iter.hasNext(); } - public Object next() { + public Resource next() { PropertyResource p = new PropertyResource(getProject(), (String) iter.next()); return m == null ? (Resource) p : new MappedResource(p, m); } diff --git a/src/main/org/apache/tools/ant/types/Resource.java b/src/main/org/apache/tools/ant/types/Resource.java index 557952a75..bbabdb17b 100644 --- a/src/main/org/apache/tools/ant/types/Resource.java +++ b/src/main/org/apache/tools/ant/types/Resource.java @@ -36,7 +36,7 @@ import org.apache.tools.ant.types.resources.FileProvider; * @since Ant 1.5.2 * @see org.apache.tools.ant.types.resources.Touchable */ -public class Resource extends DataType implements Cloneable, Comparable, ResourceCollection { +public class Resource extends DataType implements Comparable, ResourceCollection { /** Constant unknown size */ public static final long UNKNOWN_SIZE = -1; @@ -270,13 +270,9 @@ public class Resource extends DataType implements Cloneable, Comparable, Resourc * is less than, equal to, or greater than the specified Resource. * @since Ant 1.6 */ - public int compareTo(Object other) { + public int compareTo(Resource other) { if (isReference()) { - return ((Comparable) getCheckedRef()).compareTo(other); - } - if (!(other instanceof Resource)) { - throw new IllegalArgumentException( - "Can only be compared with Resources"); + return ((Resource) getCheckedRef()).compareTo(other); } return toString().compareTo(other.toString()); } @@ -291,7 +287,7 @@ public class Resource extends DataType implements Cloneable, Comparable, Resourc if (isReference()) { return getCheckedRef().equals(other); } - return other.getClass().equals(getClass()) && compareTo(other) == 0; + return other.getClass().equals(getClass()) && compareTo((Resource) other) == 0; } /** @@ -344,14 +340,14 @@ public class Resource extends DataType implements Cloneable, Comparable, Resourc * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { return isReference() ? ((Resource) getCheckedRef()).iterator() - : new Iterator() { + : new Iterator() { private boolean done = false; public boolean hasNext() { return !done; } - public Object next() { + public Resource next() { if (done) { throw new NoSuchElementException(); } @@ -436,7 +432,7 @@ public class Resource extends DataType implements Cloneable, Comparable, Resourc * * @since Ant 1.8.0 */ - public Object as(Class clazz) { - return clazz.isAssignableFrom(getClass()) ? this : null; + public T as(Class clazz) { + return clazz.isAssignableFrom(getClass()) ? clazz.cast(this) : null; } } diff --git a/src/main/org/apache/tools/ant/types/ResourceCollection.java b/src/main/org/apache/tools/ant/types/ResourceCollection.java index 2770dce56..a31b9e981 100644 --- a/src/main/org/apache/tools/ant/types/ResourceCollection.java +++ b/src/main/org/apache/tools/ant/types/ResourceCollection.java @@ -24,14 +24,13 @@ import org.apache.tools.ant.types.resources.FileProvider; * Interface describing a collection of Resources. * @since Ant 1.7 */ -public interface ResourceCollection { +public interface ResourceCollection extends Iterable { /** - * Get an Iterator over the contents of this ResourceCollection, whose elements - * are {@link Resource} instances. - * @return an Iterator of Resources. + * Gets the contents of this collection. + * @return all resources in the collection */ - Iterator iterator(); + Iterator iterator(); /** * Learn the number of contained Resources. diff --git a/src/main/org/apache/tools/ant/types/ZipScanner.java b/src/main/org/apache/tools/ant/types/ZipScanner.java index eb0930b0f..3011bef2b 100644 --- a/src/main/org/apache/tools/ant/types/ZipScanner.java +++ b/src/main/org/apache/tools/ant/types/ZipScanner.java @@ -59,7 +59,7 @@ public class ZipScanner extends ArchiveScanner { ZipFile zf = null; File srcFile = null; - FileProvider fp = (FileProvider) src.as(FileProvider.class); + FileProvider fp = src.as(FileProvider.class); if (fp != null) { srcFile = fp.getFile(); } else { diff --git a/src/main/org/apache/tools/ant/types/resources/AbstractResourceCollectionWrapper.java b/src/main/org/apache/tools/ant/types/resources/AbstractResourceCollectionWrapper.java index ecd3d1b20..fa1178203 100644 --- a/src/main/org/apache/tools/ant/types/resources/AbstractResourceCollectionWrapper.java +++ b/src/main/org/apache/tools/ant/types/resources/AbstractResourceCollectionWrapper.java @@ -85,7 +85,7 @@ public abstract class AbstractResourceCollectionWrapper * Fulfill the ResourceCollection contract. * @return an Iterator of Resources. */ - public final synchronized Iterator iterator() { + public final synchronized Iterator iterator() { if (isReference()) { return ((AbstractResourceCollectionWrapper) getCheckedRef()).iterator(); } @@ -101,7 +101,7 @@ public abstract class AbstractResourceCollectionWrapper * * @return the iterator on the resource collection */ - protected abstract Iterator createIterator(); + protected abstract Iterator createIterator(); /** * Fulfill the ResourceCollection contract. diff --git a/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java b/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java index a6bbcbae6..2afa455e7 100644 --- a/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java +++ b/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java @@ -110,7 +110,7 @@ public abstract class ArchiveResource extends Resource { throw new BuildException("only single argument resource collections" + " are supported as archives"); } - archive = (Resource) a.iterator().next(); + archive = a.iterator().next(); } /** @@ -199,7 +199,7 @@ public abstract class ArchiveResource extends Resource { * @return a negative integer, zero, or a positive integer as this Resource * is less than, equal to, or greater than the specified Resource. */ - public int compareTo(Object another) { + public int compareTo(Resource another) { return this.equals(another) ? 0 : super.compareTo(another); } diff --git a/src/main/org/apache/tools/ant/types/resources/Archives.java b/src/main/org/apache/tools/ant/types/resources/Archives.java index 3cde26d42..76862b32b 100644 --- a/src/main/org/apache/tools/ant/types/resources/Archives.java +++ b/src/main/org/apache/tools/ant/types/resources/Archives.java @@ -86,15 +86,15 @@ public class Archives extends DataType /** * Merges the nested collections. */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((Archives) getCheckedRef()).iterator(); } dieOnCircularReference(); - List l = new LinkedList(); - for (Iterator i = grabArchives(); i.hasNext(); ) { + List l = new LinkedList(); + for (Iterator i = grabArchives(); i.hasNext(); ) { l.addAll(CollectionUtils - .asCollection(((ResourceCollection) i.next()).iterator())); + .asCollection(i.next().iterator())); } return l.iterator(); } @@ -144,15 +144,13 @@ public class Archives extends DataType * Turns all nested resources into corresponding ArchiveFileSets * and returns an iterator over the collected archives. */ - protected Iterator/**/ grabArchives() { - List l = new LinkedList(); - for (Iterator iter = zips.iterator(); iter.hasNext(); ) { - l.add(configureArchive(new ZipFileSet(), - (Resource) iter.next())); + protected Iterator grabArchives() { + List l = new LinkedList(); + for (Resource r : zips) { + l.add(configureArchive(new ZipFileSet(), r)); } - for (Iterator iter = tars.iterator(); iter.hasNext(); ) { - l.add(configureArchive(new TarFileSet(), - (Resource) iter.next())); + for (Resource r : tars) { + l.add(configureArchive(new TarFileSet(), r)); } return l.iterator(); } diff --git a/src/main/org/apache/tools/ant/types/resources/BCFileSet.java b/src/main/org/apache/tools/ant/types/resources/BCFileSet.java index c8a079936..aa99a4a32 100644 --- a/src/main/org/apache/tools/ant/types/resources/BCFileSet.java +++ b/src/main/org/apache/tools/ant/types/resources/BCFileSet.java @@ -20,6 +20,7 @@ package org.apache.tools.ant.types.resources; import java.util.Iterator; import org.apache.tools.ant.types.FileSet; +import org.apache.tools.ant.types.Resource; /** * Utility FileSet that includes directories for backwards-compatibility @@ -46,7 +47,7 @@ public class BCFileSet extends FileSet { * @return an Iterator of Resources. * @since Ant 1.7 */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((FileSet) getRef(getProject())).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionContainer.java b/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionContainer.java index d09a44b56..6be0a70c8 100644 --- a/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionContainer.java +++ b/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionContainer.java @@ -37,8 +37,8 @@ import org.apache.tools.ant.types.ResourceCollection; */ public abstract class BaseResourceCollectionContainer extends DataType implements ResourceCollection, Cloneable { - private List rc = new ArrayList(); - private Collection coll = null; + private List rc = new ArrayList(); + private Collection coll = null; private boolean cache = true; /** @@ -134,7 +134,7 @@ public abstract class BaseResourceCollectionContainer * are added to this container while the Iterator is in use. * @return a "fail-fast" Iterator. */ - public final synchronized Iterator iterator() { + public final synchronized Iterator iterator() { if (isReference()) { return ((BaseResourceCollectionContainer) getCheckedRef()).iterator(); } @@ -211,7 +211,7 @@ public abstract class BaseResourceCollectionContainer * Get the nested ResourceCollections. * @return List. */ - public final synchronized List getResourceCollections() { + public final synchronized List getResourceCollections() { dieOnCircularReference(); return Collections.unmodifiableList(rc); } @@ -220,7 +220,7 @@ public abstract class BaseResourceCollectionContainer * Template method for subclasses to return a Collection object of Resources. * @return Collection. */ - protected abstract Collection getCollection(); + protected abstract Collection getCollection(); /** * Implement clone. The set of nested resource @@ -260,7 +260,7 @@ public abstract class BaseResourceCollectionContainer return sb.toString(); } - private synchronized Collection cacheCollection() { + private synchronized Collection cacheCollection() { if (coll == null || !isCache()) { coll = getCollection(); } diff --git a/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionWrapper.java b/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionWrapper.java index f4b5e8709..c5dad48c8 100644 --- a/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionWrapper.java +++ b/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionWrapper.java @@ -19,6 +19,7 @@ package org.apache.tools.ant.types.resources; import java.util.Collection; import java.util.Iterator; +import org.apache.tools.ant.types.Resource; /** * Base class for a ResourceCollection that wraps a single nested @@ -28,9 +29,9 @@ import java.util.Iterator; public abstract class BaseResourceCollectionWrapper extends AbstractResourceCollectionWrapper { - private Collection coll = null; + private Collection coll = null; - protected Iterator createIterator() { + protected Iterator createIterator() { return cacheCollection().iterator(); } @@ -42,9 +43,9 @@ public abstract class BaseResourceCollectionWrapper * Template method for subclasses to return a Collection of Resources. * @return Collection. */ - protected abstract Collection getCollection(); + protected abstract Collection getCollection(); - private synchronized Collection cacheCollection() { + private synchronized Collection cacheCollection() { if (coll == null || !isCache()) { coll = getCollection(); } diff --git a/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java b/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java index 7c8a3e455..d5c8c3754 100644 --- a/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java +++ b/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java @@ -113,13 +113,13 @@ public abstract class ContentTransformingResource extends ResourceDecorator { /** * Suppress FileProvider, re-implement Appendable */ - public Object as(Class clazz) { + public T as(Class clazz) { if (Appendable.class.isAssignableFrom(clazz)) { if (isAppendSupported()) { final Appendable a = - (Appendable) getResource().as(Appendable.class); + getResource().as(Appendable.class); if (a != null) { - return new Appendable() { + return clazz.cast(new Appendable() { public OutputStream getAppendOutputStream() throws IOException { OutputStream out = a.getAppendOutputStream(); @@ -128,7 +128,7 @@ public abstract class ContentTransformingResource extends ResourceDecorator { } return out; } - }; + }); } } return null; diff --git a/src/main/org/apache/tools/ant/types/resources/Difference.java b/src/main/org/apache/tools/ant/types/resources/Difference.java index 28c5afb8b..7afa7bb40 100644 --- a/src/main/org/apache/tools/ant/types/resources/Difference.java +++ b/src/main/org/apache/tools/ant/types/resources/Difference.java @@ -17,13 +17,13 @@ */ package org.apache.tools.ant.types.resources; -import java.util.List; -import java.util.HashSet; -import java.util.Iterator; import java.util.ArrayList; import java.util.Collection; - +import java.util.HashSet; +import java.util.List; +import java.util.Set; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; /** @@ -37,31 +37,26 @@ public class Difference extends BaseResourceCollectionContainer { * Calculate the difference of the nested ResourceCollections. * @return a Collection of Resources. */ - protected Collection getCollection() { - List rc = getResourceCollections(); - int size = rc.size(); + protected Collection getCollection() { + List rcs = getResourceCollections(); + int size = rcs.size(); if (size < 2) { throw new BuildException("The difference of " + size + " resource collection" + ((size == 1) ? "" : "s") + " is undefined."); } - HashSet hs = new HashSet(); - ArrayList al = new ArrayList(); - for (Iterator rcIter = rc.iterator(); rcIter.hasNext();) { - for (Iterator r = nextRC(rcIter).iterator(); r.hasNext();) { - Object next = r.next(); - if (hs.add(next)) { - al.add(next); + Set hs = new HashSet(); + List al = new ArrayList(); + for (ResourceCollection rc : rcs) { + for (Resource r : rc) { + if (hs.add(r)) { + al.add(r); } else { - al.remove(next); + al.remove(r); } } } return al; } - private static ResourceCollection nextRC(Iterator i) { - return (ResourceCollection) i.next(); - } - } diff --git a/src/main/org/apache/tools/ant/types/resources/FailFast.java b/src/main/org/apache/tools/ant/types/resources/FailFast.java index 7d24e7137..8703768b5 100644 --- a/src/main/org/apache/tools/ant/types/resources/FailFast.java +++ b/src/main/org/apache/tools/ant/types/resources/FailFast.java @@ -23,13 +23,14 @@ import java.util.Iterator; import java.util.WeakHashMap; import java.util.NoSuchElementException; import java.util.ConcurrentModificationException; +import org.apache.tools.ant.types.Resource; /** * Helper class for ResourceCollections to return Iterators * that fail on changes to the object. * @since Ant 1.7 */ -/*package-private*/ class FailFast implements Iterator { +/*package-private*/ class FailFast implements Iterator { private static final WeakHashMap MAP = new WeakHashMap(); /** @@ -67,7 +68,7 @@ import java.util.ConcurrentModificationException; } private Object parent; - private Iterator wrapped; + private Iterator wrapped; /** * Construct a new FailFast Iterator wrapping the specified Iterator @@ -75,7 +76,7 @@ import java.util.ConcurrentModificationException; * @param o the parent Object. * @param i the wrapped Iterator. */ - FailFast(Object o, Iterator i) { + FailFast(Object o, Iterator i) { if (o == null) { throw new IllegalArgumentException("parent object is null"); } @@ -106,7 +107,7 @@ import java.util.ConcurrentModificationException; * @return the next element. * @throws NoSuchElementException if no more elements. */ - public Object next() { + public Resource next() { if (wrapped == null || !wrapped.hasNext()) { throw new NoSuchElementException(); } diff --git a/src/main/org/apache/tools/ant/types/resources/FileResource.java b/src/main/org/apache/tools/ant/types/resources/FileResource.java index 516545fd9..e4284d9ed 100644 --- a/src/main/org/apache/tools/ant/types/resources/FileResource.java +++ b/src/main/org/apache/tools/ant/types/resources/FileResource.java @@ -262,27 +262,24 @@ public class FileResource extends Resource implements Touchable, FileProvider, * @return a negative integer, zero, or a positive integer as this FileResource * is less than, equal to, or greater than the specified Resource. */ - public int compareTo(Object another) { + public int compareTo(Resource another) { if (isReference()) { - return ((Comparable) getCheckedRef()).compareTo(another); + return ((Resource) getCheckedRef()).compareTo(another); } if (this.equals(another)) { return 0; } - if (another instanceof Resource) { - Resource r = (Resource) another; - FileProvider otherFP = (FileProvider) r.as(FileProvider.class); - if (otherFP != null) { - File f = getFile(); - if (f == null) { - return -1; - } - File of = otherFP.getFile(); - if (of == null) { - return 1; - } - return f.compareTo(of); + FileProvider otherFP = another.as(FileProvider.class); + if (otherFP != null) { + File f = getFile(); + if (f == null) { + return -1; + } + File of = otherFP.getFile(); + if (of == null) { + return 1; } + return f.compareTo(of); } return super.compareTo(another); } diff --git a/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java b/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java index cc262f702..6d8849ced 100644 --- a/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java +++ b/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java @@ -22,12 +22,13 @@ import java.util.Iterator; import java.util.NoSuchElementException; import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.Resource; /** * Iterator of FileResources from filenames. * @since Ant 1.7 */ -public class FileResourceIterator implements Iterator { +public class FileResourceIterator implements Iterator { private Project project; private File basedir; private String[] files; @@ -121,7 +122,7 @@ public class FileResourceIterator implements Iterator { * Get the next element from this FileResourceIterator. * @return the next Object. */ - public Object next() { + public Resource next() { return nextResource(); } diff --git a/src/main/org/apache/tools/ant/types/resources/Files.java b/src/main/org/apache/tools/ant/types/resources/Files.java index f318ca6d8..f9481d966 100644 --- a/src/main/org/apache/tools/ant/types/resources/Files.java +++ b/src/main/org/apache/tools/ant/types/resources/Files.java @@ -27,6 +27,7 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.types.Reference; import org.apache.tools.ant.types.PatternSet; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.selectors.FileSelector; import org.apache.tools.ant.types.selectors.AbstractSelectorContainer; @@ -38,8 +39,8 @@ import org.apache.tools.ant.types.selectors.AbstractSelectorContainer; public class Files extends AbstractSelectorContainer implements ResourceCollection { - private static final Iterator EMPTY_ITERATOR - = Collections.EMPTY_SET.iterator(); + private static final Iterator EMPTY_ITERATOR + = Collections.emptySet().iterator(); private PatternSet defaultPatterns = new PatternSet(); private Vector additionalPatterns = new Vector(); @@ -309,7 +310,7 @@ public class Files extends AbstractSelectorContainer * Fulfill the ResourceCollection contract. * @return an Iterator of Resources. */ - public synchronized Iterator iterator() { + public synchronized Iterator iterator() { if (isReference()) { return getRef().iterator(); } @@ -385,7 +386,7 @@ public class Files extends AbstractSelectorContainer if (isReference()) { return getRef().toString(); } - Iterator i = iterator(); + Iterator i = iterator(); if (!i.hasNext()) { return ""; } diff --git a/src/main/org/apache/tools/ant/types/resources/First.java b/src/main/org/apache/tools/ant/types/resources/First.java index 96c270786..c5f670f6e 100644 --- a/src/main/org/apache/tools/ant/types/resources/First.java +++ b/src/main/org/apache/tools/ant/types/resources/First.java @@ -20,6 +20,8 @@ package org.apache.tools.ant.types.resources; import java.util.Iterator; import java.util.ArrayList; import java.util.Collection; +import java.util.List; +import org.apache.tools.ant.types.Resource; /** * ResourceCollection that contains the first count elements of @@ -32,10 +34,10 @@ public class First extends SizeLimitCollection { * Take the first count elements. * @return a Collection of Resources. */ - protected Collection getCollection() { + protected Collection getCollection() { int ct = getValidCount(); - Iterator iter = getResourceCollection().iterator(); - ArrayList al = new ArrayList(ct); + Iterator iter = getResourceCollection().iterator(); + List al = new ArrayList(ct); for (int i = 0; i < ct && iter.hasNext(); i++) { al.add(iter.next()); } diff --git a/src/main/org/apache/tools/ant/types/resources/Intersect.java b/src/main/org/apache/tools/ant/types/resources/Intersect.java index 76b076d91..015e5da16 100644 --- a/src/main/org/apache/tools/ant/types/resources/Intersect.java +++ b/src/main/org/apache/tools/ant/types/resources/Intersect.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collection; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; /** @@ -36,16 +37,16 @@ public class Intersect extends BaseResourceCollectionContainer { * Calculate the intersection of the nested ResourceCollections. * @return a Collection of Resources. */ - protected Collection getCollection() { - List rcs = getResourceCollections(); + protected Collection getCollection() { + List rcs = getResourceCollections(); int size = rcs.size(); if (size < 2) { throw new BuildException("The intersection of " + size + " resource collection" + ((size == 1) ? "" : "s") + " is undefined."); } - ArrayList al = new ArrayList(); - Iterator rc = rcs.iterator(); + List al = new ArrayList(); + Iterator rc = rcs.iterator(); al.addAll(collect(rc.next())); while (rc.hasNext()) { al.retainAll(collect(rc.next())); @@ -53,10 +54,10 @@ public class Intersect extends BaseResourceCollectionContainer { return al; } - private ArrayList collect(Object o) { - ArrayList result = new ArrayList(); - for (Iterator i = ((ResourceCollection) o).iterator(); i.hasNext();) { - result.add(i.next()); + private List collect(ResourceCollection rc) { + List result = new ArrayList(); + for (Resource r : rc) { + result.add(r); } return result; } diff --git a/src/main/org/apache/tools/ant/types/resources/JavaResource.java b/src/main/org/apache/tools/ant/types/resources/JavaResource.java index ed15e96bc..a927d3fb3 100644 --- a/src/main/org/apache/tools/ant/types/resources/JavaResource.java +++ b/src/main/org/apache/tools/ant/types/resources/JavaResource.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.net.URL; import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.types.Resource; /** * A Resource representation of something loadable via a Java classloader. @@ -102,9 +103,9 @@ public class JavaResource extends AbstractClasspathResource * JavaResource is less than, equal to, or greater than the * specified Resource. */ - public int compareTo(Object another) { + public int compareTo(Resource another) { if (isReference()) { - return ((Comparable) getCheckedRef()).compareTo(another); + return ((Resource) getCheckedRef()).compareTo(another); } if (another.getClass().equals(getClass())) { JavaResource otherjr = (JavaResource) another; diff --git a/src/main/org/apache/tools/ant/types/resources/Last.java b/src/main/org/apache/tools/ant/types/resources/Last.java index 475a45e36..93910f1af 100644 --- a/src/main/org/apache/tools/ant/types/resources/Last.java +++ b/src/main/org/apache/tools/ant/types/resources/Last.java @@ -20,9 +20,11 @@ package org.apache.tools.ant.types.resources; import java.util.Iterator; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; /** @@ -36,17 +38,17 @@ public class Last extends SizeLimitCollection { * Take the last count elements. * @return a Collection of Resources. */ - protected Collection getCollection() { + protected Collection getCollection() { int count = getValidCount(); ResourceCollection rc = getResourceCollection(); int i = count; - Iterator iter = rc.iterator(); + Iterator iter = rc.iterator(); int size = rc.size(); for (; i < size; i++) { iter.next(); } - ArrayList al = new ArrayList(count); + List al = new ArrayList(count); for (; iter.hasNext(); i++) { al.add(iter.next()); } diff --git a/src/main/org/apache/tools/ant/types/resources/LazyResourceCollectionWrapper.java b/src/main/org/apache/tools/ant/types/resources/LazyResourceCollectionWrapper.java index b78cdeb32..51afc30b8 100644 --- a/src/main/org/apache/tools/ant/types/resources/LazyResourceCollectionWrapper.java +++ b/src/main/org/apache/tools/ant/types/resources/LazyResourceCollectionWrapper.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; - import org.apache.tools.ant.types.Resource; /** @@ -15,12 +14,12 @@ public class LazyResourceCollectionWrapper extends AbstractResourceCollectionWrapper { /** List of cached resources */ - private List cachedResources = new ArrayList(); + private final List cachedResources = new ArrayList(); private FilteringIterator filteringIterator; - protected Iterator createIterator() { - Iterator iterator; + protected Iterator createIterator() { + Iterator iterator; if (isCache()) { if (filteringIterator == null) { // no worry of thread safety here, see function's contract @@ -37,7 +36,7 @@ public class LazyResourceCollectionWrapper extends protected int getSize() { // to compute the size, just iterate: the iterator will take care of // caching - Iterator it = createIterator(); + Iterator it = createIterator(); int size = 0; while (it.hasNext()) { it.next(); @@ -57,15 +56,15 @@ public class LazyResourceCollectionWrapper extends return false; } - private class FilteringIterator implements Iterator { + private class FilteringIterator implements Iterator { Resource next = null; boolean ended = false; - protected final Iterator it; + protected final Iterator it; - public FilteringIterator(Iterator it) { + public FilteringIterator(Iterator it) { this.it = it; } @@ -78,7 +77,7 @@ public class LazyResourceCollectionWrapper extends ended = true; return false; } - next = (Resource) it.next(); + next = it.next(); if (filterResource(next)) { next = null; } @@ -86,7 +85,7 @@ public class LazyResourceCollectionWrapper extends return true; } - public Object next() { + public Resource next() { if (!hasNext()) { throw new UnsupportedOperationException(); } @@ -104,11 +103,11 @@ public class LazyResourceCollectionWrapper extends * Iterator that will put in the shared cache array list the selected * resources */ - private class CachedIterator implements Iterator { + private class CachedIterator implements Iterator { int cusrsor = 0; - private final Iterator it; + private final Iterator it; /** * Default constructor @@ -117,7 +116,7 @@ public class LazyResourceCollectionWrapper extends * the iterator which will provide the resources to put in * cache */ - public CachedIterator(Iterator it) { + public CachedIterator(Iterator it) { this.it = it; } @@ -132,13 +131,13 @@ public class LazyResourceCollectionWrapper extends return false; } // put in cache the next resource - Resource r = (Resource) it.next(); + Resource r = it.next(); cachedResources.add(r); } return true; } - public Object next() { + public Resource next() { // first check that we have some to deliver if (!hasNext()) { throw new NoSuchElementException(); diff --git a/src/main/org/apache/tools/ant/types/resources/MappedResource.java b/src/main/org/apache/tools/ant/types/resources/MappedResource.java index 82071ed8c..6ef326f81 100644 --- a/src/main/org/apache/tools/ant/types/resources/MappedResource.java +++ b/src/main/org/apache/tools/ant/types/resources/MappedResource.java @@ -70,7 +70,7 @@ public class MappedResource extends ResourceDecorator { * Suppress FileProvider * @param clazz the type to implement */ - public Object as(Class clazz) { + public T as(Class clazz) { return FileProvider.class.isAssignableFrom(clazz) ? null : getResource().as(clazz); } diff --git a/src/main/org/apache/tools/ant/types/resources/MappedResourceCollection.java b/src/main/org/apache/tools/ant/types/resources/MappedResourceCollection.java index 89ea297c6..74539ffbf 100644 --- a/src/main/org/apache/tools/ant/types/resources/MappedResourceCollection.java +++ b/src/main/org/apache/tools/ant/types/resources/MappedResourceCollection.java @@ -44,7 +44,7 @@ public class MappedResourceCollection private Mapper mapper = null; private boolean enableMultipleMappings = false; private boolean cache = false; - private Collection cachedColl = null; + private Collection cachedColl = null; /** * Adds the required nested ResourceCollection. @@ -142,7 +142,7 @@ public class MappedResourceCollection /** * {@inheritDoc} */ - public Iterator iterator() { + public Iterator iterator() { if (isReference()) { return ((MappedResourceCollection) getCheckedRef()).iterator(); } @@ -212,19 +212,18 @@ public class MappedResourceCollection dieOnCircularReference(); } - private synchronized Collection cacheCollection() { + private synchronized Collection cacheCollection() { if (cachedColl == null || !cache) { cachedColl = getCollection(); } return cachedColl; } - private Collection getCollection() { - Collection collected = new ArrayList(); + private Collection getCollection() { + Collection collected = new ArrayList(); FileNameMapper m = mapper != null ? mapper.getImplementation() : new IdentityMapper(); - for (Iterator iter = nested.iterator(); iter.hasNext(); ) { - Resource r = (Resource) iter.next(); + for (Resource r : nested) { if (enableMultipleMappings) { String[] n = m.mapFileName(r.getName()); if (n != null) { diff --git a/src/main/org/apache/tools/ant/types/resources/ResourceDecorator.java b/src/main/org/apache/tools/ant/types/resources/ResourceDecorator.java index 867fde4e8..714fb75aa 100644 --- a/src/main/org/apache/tools/ant/types/resources/ResourceDecorator.java +++ b/src/main/org/apache/tools/ant/types/resources/ResourceDecorator.java @@ -67,7 +67,7 @@ public abstract class ResourceDecorator extends Resource { + " are supported"); } setChecked(false); - resource = (Resource) a.iterator().next(); + resource = a.iterator().next(); } /** @@ -159,14 +159,14 @@ public abstract class ResourceDecorator extends Resource { /** * {@inheritDoc} */ - public Object as(Class clazz) { + public T as(Class clazz) { return getResource().as(clazz); } /** * {@inheritDoc} */ - public int compareTo(Object other) { + public int compareTo(Resource other) { if (other == this) { return 0; } diff --git a/src/main/org/apache/tools/ant/types/resources/ResourceList.java b/src/main/org/apache/tools/ant/types/resources/ResourceList.java index 75da21896..9a39ac24d 100644 --- a/src/main/org/apache/tools/ant/types/resources/ResourceList.java +++ b/src/main/org/apache/tools/ant/types/resources/ResourceList.java @@ -112,7 +112,7 @@ public class ResourceList extends DataType implements ResourceCollection { * are added to this container while the Iterator is in use. * @return a "fail-fast" Iterator. */ - public final synchronized Iterator iterator() { + public final synchronized Iterator iterator() { if (isReference()) { return ((ResourceList) getCheckedRef()).iterator(); } @@ -175,8 +175,8 @@ public class ResourceList extends DataType implements ResourceCollection { dieOnCircularReference(); for (Iterator iter = textDocuments.iterator(); iter.hasNext(); ) { ResourceCollection rc = (ResourceCollection) iter.next(); - for (Iterator r = rc.iterator(); r.hasNext(); ) { - cachedResources.add(read((Resource) r.next())); + for (Resource r : rc) { + cachedResources.add(read(r)); } } cached = true; diff --git a/src/main/org/apache/tools/ant/types/resources/Resources.java b/src/main/org/apache/tools/ant/types/resources/Resources.java index 1599bb80a..509eabe5f 100644 --- a/src/main/org/apache/tools/ant/types/resources/Resources.java +++ b/src/main/org/apache/tools/ant/types/resources/Resources.java @@ -31,6 +31,7 @@ import java.util.NoSuchElementException; import org.apache.tools.ant.Project; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.util.CollectionUtils; @@ -45,7 +46,7 @@ public class Resources extends DataType implements ResourceCollection { public boolean isFilesystemOnly() { return true; } - public Iterator iterator() { + public Iterator iterator() { return EMPTY_ITERATOR; } public int size() { @@ -54,8 +55,8 @@ public class Resources extends DataType implements ResourceCollection { }; /** static empty Iterator */ - public static final Iterator EMPTY_ITERATOR = new Iterator() { - public Object next() { + public static final Iterator EMPTY_ITERATOR = new Iterator() { + public Resource next() { throw new NoSuchElementException(); } public boolean hasNext() { @@ -66,19 +67,19 @@ public class Resources extends DataType implements ResourceCollection { } }; - private class MyCollection extends AbstractCollection { - private Collection cached; + private class MyCollection extends AbstractCollection { + private Collection cached; MyCollection() { } public int size() { return getCache().size(); } - public Iterator iterator() { + public Iterator iterator() { return getCache().iterator(); } - private synchronized Collection getCache() { - Collection coll = cached; + private synchronized Collection getCache() { + Collection coll = cached; if (coll == null) { coll = CollectionUtils.asCollection(new MyIterator()); if (cache) { @@ -87,9 +88,9 @@ public class Resources extends DataType implements ResourceCollection { } return coll; } - private class MyIterator implements Iterator { + private class MyIterator implements Iterator { private Iterator rci = getNested().iterator(); - private Iterator ri = null; + private Iterator ri = null; public boolean hasNext() { boolean result = ri != null && ri.hasNext(); @@ -99,7 +100,7 @@ public class Resources extends DataType implements ResourceCollection { } return result; } - public Object next() { + public Resource next() { if (!hasNext()) { throw new NoSuchElementException(); } @@ -112,7 +113,7 @@ public class Resources extends DataType implements ResourceCollection { } private Vector rc; - private Collection coll; + private Collection coll; private boolean cache = false; /** @@ -162,7 +163,7 @@ public class Resources extends DataType implements ResourceCollection { * Fulfill the ResourceCollection contract. * @return an Iterator of Resources. */ - public synchronized Iterator iterator() { + public synchronized Iterator iterator() { if (isReference()) { return getRef().iterator(); } @@ -213,11 +214,11 @@ public class Resources extends DataType implements ResourceCollection { return ""; } StringBuffer sb = new StringBuffer(); - for (Iterator i = coll.iterator(); i.hasNext();) { + for (Resource r : coll) { if (sb.length() > 0) { sb.append(File.pathSeparatorChar); } - sb.append(i.next()); + sb.append(r); } return sb.toString(); } diff --git a/src/main/org/apache/tools/ant/types/resources/Restrict.java b/src/main/org/apache/tools/ant/types/resources/Restrict.java index d101687ca..16b67c557 100644 --- a/src/main/org/apache/tools/ant/types/resources/Restrict.java +++ b/src/main/org/apache/tools/ant/types/resources/Restrict.java @@ -96,7 +96,7 @@ public class Restrict * Fulfill the ResourceCollection contract. * @return an Iterator of Resources. */ - public final synchronized Iterator iterator() { + public final synchronized Iterator iterator() { if (isReference()) { return ((Restrict) getCheckedRef()).iterator(); } diff --git a/src/main/org/apache/tools/ant/types/resources/Sort.java b/src/main/org/apache/tools/ant/types/resources/Sort.java index 7071c7b59..89ae7dbf0 100644 --- a/src/main/org/apache/tools/ant/types/resources/Sort.java +++ b/src/main/org/apache/tools/ant/types/resources/Sort.java @@ -26,6 +26,7 @@ import java.util.Collections; import org.apache.tools.ant.Project; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.types.DataType; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.resources.comparators.ResourceComparator; import org.apache.tools.ant.types.resources.comparators.DelegatedResourceComparator; @@ -47,13 +48,13 @@ public class Sort extends BaseResourceCollectionWrapper { * Sort the contained elements. * @return a Collection of Resources. */ - protected synchronized Collection getCollection() { + protected synchronized Collection getCollection() { ResourceCollection rc = getResourceCollection(); - Iterator iter = rc.iterator(); + Iterator iter = rc.iterator(); if (!(iter.hasNext())) { - return Collections.EMPTY_SET; + return Collections.emptySet(); } - List result = (List) CollectionUtils.asCollection(iter); + List result = (List) CollectionUtils.asCollection(iter); Collections.sort(result, comp); return result; } diff --git a/src/main/org/apache/tools/ant/types/resources/Union.java b/src/main/org/apache/tools/ant/types/resources/Union.java index a6b82fc66..99f518054 100644 --- a/src/main/org/apache/tools/ant/types/resources/Union.java +++ b/src/main/org/apache/tools/ant/types/resources/Union.java @@ -113,7 +113,7 @@ public class Union extends BaseResourceCollectionContainer { * should contain Strings instead of Resources. * @return a Collection of Resources. */ - protected Collection getCollection(boolean asString) { + protected Collection getCollection(boolean asString) { // XXX untypable List rc = getResourceCollections(); if (rc.isEmpty()) { return Collections.EMPTY_LIST; diff --git a/src/main/org/apache/tools/ant/types/resources/ZipResource.java b/src/main/org/apache/tools/ant/types/resources/ZipResource.java index 8d46631ba..9b31d61c2 100644 --- a/src/main/org/apache/tools/ant/types/resources/ZipResource.java +++ b/src/main/org/apache/tools/ant/types/resources/ZipResource.java @@ -75,7 +75,7 @@ public class ZipResource extends ArchiveResource { * @return the zipfile as a File. */ public File getZipfile() { - FileProvider fp = (FileProvider) getArchive().as(FileProvider.class); + FileProvider fp = getArchive().as(FileProvider.class); return fp.getFile(); } diff --git a/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java b/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java index 60fe952f9..8ae857839 100644 --- a/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java +++ b/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java @@ -38,13 +38,13 @@ public class FileSystem extends ResourceComparator { * @throws ClassCastException if either resource is not an instance of FileResource. */ protected int resourceCompare(Resource foo, Resource bar) { - FileProvider fooFP = (FileProvider) foo.as(FileProvider.class); + FileProvider fooFP = foo.as(FileProvider.class); if (fooFP == null) { throw new ClassCastException(foo.getClass() + " doesn't provide files"); } File foofile = fooFP.getFile(); - FileProvider barFP = (FileProvider) bar.as(FileProvider.class); + FileProvider barFP = bar.as(FileProvider.class); if (barFP == null) { throw new ClassCastException(bar.getClass() + " doesn't provide files"); diff --git a/src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java b/src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java index 333c0856a..3bfc9c706 100644 --- a/src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java +++ b/src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java @@ -26,7 +26,7 @@ import org.apache.tools.ant.types.Resource; * Abstract Resource Comparator. * @since Ant 1.7 */ -public abstract class ResourceComparator extends DataType implements Comparator { +public abstract class ResourceComparator extends DataType implements Comparator { /** * Compare two objects. @@ -36,11 +36,11 @@ public abstract class ResourceComparator extends DataType implements Comparator * argument is less than, equal to, or greater than the second. * @throws ClassCastException if either argument is null. */ - public final int compare(Object foo, Object bar) { + public final int compare(Resource foo, Resource bar) { dieOnCircularReference(); ResourceComparator c = isReference() ? (ResourceComparator) getCheckedRef() : this; - return c.resourceCompare((Resource) foo, (Resource) bar); + return c.resourceCompare(foo, bar); } /** diff --git a/src/main/org/apache/tools/ant/types/resources/selectors/Compare.java b/src/main/org/apache/tools/ant/types/resources/selectors/Compare.java index e42b4d8c1..7704e89e0 100644 --- a/src/main/org/apache/tools/ant/types/resources/selectors/Compare.java +++ b/src/main/org/apache/tools/ant/types/resources/selectors/Compare.java @@ -111,8 +111,8 @@ public class Compare extends DataType implements ResourceSelector { } dieOnCircularReference(); int t = 0, f = 0; - for (Iterator it = control.iterator(); it.hasNext();) { - if (when.evaluate(comp.compare(r, (Resource) it.next()))) { + for (Resource res : control) { + if (when.evaluate(comp.compare(r, res))) { t++; } else { f++; diff --git a/src/main/org/apache/tools/ant/types/selectors/ReadableSelector.java b/src/main/org/apache/tools/ant/types/selectors/ReadableSelector.java index 07dbf2a9c..5332b12dc 100644 --- a/src/main/org/apache/tools/ant/types/selectors/ReadableSelector.java +++ b/src/main/org/apache/tools/ant/types/selectors/ReadableSelector.java @@ -39,7 +39,7 @@ public class ReadableSelector implements FileSelector, ResourceSelector { } public boolean isSelected(Resource r) { - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { return isSelected(null, null, fp.getFile()); } diff --git a/src/main/org/apache/tools/ant/types/selectors/WritableSelector.java b/src/main/org/apache/tools/ant/types/selectors/WritableSelector.java index 370bef808..ad881a973 100644 --- a/src/main/org/apache/tools/ant/types/selectors/WritableSelector.java +++ b/src/main/org/apache/tools/ant/types/selectors/WritableSelector.java @@ -39,7 +39,7 @@ public class WritableSelector implements FileSelector, ResourceSelector { } public boolean isSelected(Resource r) { - FileProvider fp = (FileProvider) r.as(FileProvider.class); + FileProvider fp = r.as(FileProvider.class); if (fp != null) { return isSelected(null, null, fp.getFile()); } diff --git a/src/main/org/apache/tools/ant/util/CollectionUtils.java b/src/main/org/apache/tools/ant/util/CollectionUtils.java index 4bf4b6b98..e2e78f748 100644 --- a/src/main/org/apache/tools/ant/util/CollectionUtils.java +++ b/src/main/org/apache/tools/ant/util/CollectionUtils.java @@ -213,8 +213,8 @@ public class CollectionUtils { * * @since Ant 1.8.0 */ - public static Collection asCollection(final Iterator iter) { - List l = new ArrayList(); + public static Collection asCollection(final Iterator iter) { + List l = new ArrayList(); while (iter.hasNext()) { l.add(iter.next()); } diff --git a/src/main/org/apache/tools/ant/util/ConcatResourceInputStream.java b/src/main/org/apache/tools/ant/util/ConcatResourceInputStream.java index 98b613c3c..ae5dd9750 100644 --- a/src/main/org/apache/tools/ant/util/ConcatResourceInputStream.java +++ b/src/main/org/apache/tools/ant/util/ConcatResourceInputStream.java @@ -37,7 +37,7 @@ public class ConcatResourceInputStream extends InputStream { private static final int EOF = -1; private boolean eof = false; - private Iterator iter; + private Iterator iter; private InputStream currentStream; private ProjectComponent managingPc; private boolean ignoreErrors = false; diff --git a/src/main/org/apache/tools/ant/util/ResourceUtils.java b/src/main/org/apache/tools/ant/util/ResourceUtils.java index 093f1618e..d1f4876a2 100644 --- a/src/main/org/apache/tools/ant/util/ResourceUtils.java +++ b/src/main/org/apache/tools/ant/util/ResourceUtils.java @@ -189,8 +189,7 @@ public class ResourceUtils { source = Union.getInstance(source); Union result = new Union(); - for (Iterator iter = source.iterator(); iter.hasNext();) { - final Resource sr = (Resource) iter.next(); + for (Resource sr : source) { String srName = sr.getName(); srName = srName == null ? srName : srName.replace('/', File.separatorChar); @@ -223,7 +222,7 @@ public class ResourceUtils { r.add(targetColl); if (r.size() > 0) { result.add(sr); - Resource t = (Resource) (r.iterator().next()); + Resource t = r.iterator().next(); logTo.log(sr.getName() + " added as " + t.getName() + (t.isExists() ? " is outdated." : " doesn\'t exist."), Project.MSG_VERBOSE); @@ -397,7 +396,7 @@ public class ResourceUtils { File destFile = null; if (dest.as(FileProvider.class) != null) { - destFile = ((FileProvider) dest.as(FileProvider.class)).getFile(); + destFile = dest.as(FileProvider.class).getFile(); } if (destFile != null && destFile.isFile() && !destFile.canWrite()) { if (!force) { @@ -504,7 +503,7 @@ public class ResourceUtils { } else if (source.as(FileProvider.class) != null && destFile != null) { File sourceFile = - ((FileProvider) source.as(FileProvider.class)).getFile(); + source.as(FileProvider.class).getFile(); File parent = destFile.getParentFile(); if (parent != null && !parent.isDirectory() @@ -557,7 +556,7 @@ public class ResourceUtils { } } if (preserveLastModified) { - Touchable t = (Touchable) dest.as(Touchable.class); + Touchable t = dest.as(Touchable.class); if (t != null) { setLastModified(t, source.getLastModified()); } @@ -759,16 +758,15 @@ public class ResourceUtils { Restrict future = new Restrict(); future.add(sel); future.add(rc); - for (Iterator iter = future.iterator(); iter.hasNext();) { - logTo.log("Warning: " + ((Resource) iter.next()).getName() - + " modified in the future.", Project.MSG_WARN); + for (Resource r : future) { + logTo.log("Warning: " + r.getName() + " modified in the future.", Project.MSG_WARN); } } private static OutputStream getOutputStream(Resource resource, boolean append, Project project) throws IOException { if (append) { - Appendable a = (Appendable) resource.as(Appendable.class); + Appendable a = resource.as(Appendable.class); if (a != null) { return a.getAppendOutputStream(); } diff --git a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java index b6f39248b..67bb54cfa 100644 --- a/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java +++ b/src/main/org/apache/tools/ant/util/ScriptRunnerBase.java @@ -249,9 +249,7 @@ public abstract class ScriptRunnerBase { * @throws BuildException if a resource cannot be read */ public void loadResources(ResourceCollection collection) { - Iterator resources = collection.iterator(); - while (resources.hasNext()) { - Resource resource = (Resource) resources.next(); + for (Resource resource : collection) { loadResource(resource); } } diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/ZipExtraFieldTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/ZipExtraFieldTest.java index 329a00adf..799a759ab 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/ZipExtraFieldTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/ZipExtraFieldTest.java @@ -23,9 +23,11 @@ import java.io.File; import java.io.InputStream; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import junit.framework.TestCase; +import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceCollection; import org.apache.tools.ant.types.resources.ZipResource; @@ -68,10 +70,8 @@ public class ZipExtraFieldTest extends TestCase { testInstance.add(new ResourceCollection() { public boolean isFilesystemOnly() { return false; } public int size() { return 1; } - public Iterator iterator() { - ArrayList l = new ArrayList(); - l.add(r); - return l.iterator(); + public Iterator iterator() { + return Collections.singleton(r).iterator(); } }); testInstance.execute(); diff --git a/src/tests/junit/org/apache/tools/ant/types/resources/LazyResourceCollectionTest.java b/src/tests/junit/org/apache/tools/ant/types/resources/LazyResourceCollectionTest.java index 507130248..b7108fac6 100644 --- a/src/tests/junit/org/apache/tools/ant/types/resources/LazyResourceCollectionTest.java +++ b/src/tests/junit/org/apache/tools/ant/types/resources/LazyResourceCollectionTest.java @@ -39,7 +39,7 @@ public class LazyResourceCollectionTest extends TestCase { return resources.size(); } - public Iterator iterator() { + public Iterator iterator() { StringResourceIterator it = new StringResourceIterator(); createdIterators.add(it); return it; @@ -75,7 +75,7 @@ public class LazyResourceCollectionTest extends TestCase { LazyResourceCollectionWrapper lazyCollection = new LazyResourceCollectionWrapper(); lazyCollection.add(collectionTest); - Iterator it = lazyCollection.iterator(); + Iterator it = lazyCollection.iterator(); assertOneCreatedIterator(collectionTest); StringResourceIterator stringResourceIterator = (StringResourceIterator) collectionTest.createdIterators .get(0); @@ -120,9 +120,9 @@ public class LazyResourceCollectionTest extends TestCase { lazyCollection.add(collectionTest); assertTrue(lazyCollection.isCache()); - Iterator it1 = lazyCollection.iterator(); + Iterator it1 = lazyCollection.iterator(); assertOneCreatedIterator(collectionTest); - Iterator it2 = lazyCollection.iterator(); + Iterator it2 = lazyCollection.iterator(); assertOneCreatedIterator(collectionTest); StringResourceIterator stringResourceIterator = (StringResourceIterator) collectionTest.createdIterators