aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java149
1 files changed, 149 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java
new file mode 100644
index 00000000..6d8849ce
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/resources/FileResourceIterator.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.apache.tools.ant.types.resources;
+
+import java.io.File;
+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<Resource> {
+ private Project project;
+ private File basedir;
+ private String[] files;
+ private int pos = 0;
+
+ /**
+ * Construct a new FileResourceIterator.
+ * @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project)}
+ */
+ public FileResourceIterator() {
+ }
+
+ /**
+ * Create a new FileResourceIterator.
+ * @param project associated Project instance
+ * @since Ant 1.8
+ */
+ public FileResourceIterator(Project project) {
+ this.project = project;
+ }
+
+ /**
+ * Construct a new FileResourceIterator relative to the specified
+ * base directory.
+ * @param basedir the base directory of this instance.
+ * @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project, File)}
+ */
+ public FileResourceIterator(File basedir) {
+ this(null, basedir);
+ }
+
+ /**
+ * Construct a new FileResourceIterator relative to the specified
+ * base directory.
+ * @param project associated Project instance
+ * @param basedir the base directory of this instance.
+ * @since Ant 1.8
+ */
+ public FileResourceIterator(Project project, File basedir) {
+ this(project);
+ this.basedir = basedir;
+ }
+
+ /**
+ * Construct a new FileResourceIterator over the specified filenames,
+ * relative to the specified base directory.
+ * @param basedir the base directory of this instance.
+ * @param filenames the String[] of filenames.
+ * @deprecated in favor of {@link FileResourceIterator#FileResourceIterator(Project, File, String[])}
+ */
+ public FileResourceIterator(File basedir, String[] filenames) {
+ this(null, basedir, filenames);
+ }
+
+ /**
+ * Construct a new FileResourceIterator over the specified filenames,
+ * relative to the specified base directory.
+ * @param project associated Project instance
+ * @param basedir the base directory of this instance.
+ * @param filenames the String[] of filenames.
+ * @since Ant 1.8
+ */
+ public FileResourceIterator(Project project, File basedir, String[] filenames) {
+ this(project, basedir);
+ addFiles(filenames);
+ }
+
+ /**
+ * Add an array of filenames to this FileResourceIterator.
+ * @param s the filenames to add.
+ */
+ public void addFiles(String[] s) {
+ int start = (files == null) ? 0 : files.length;
+ String[] newfiles = new String[start + s.length];
+ if (start > 0) {
+ System.arraycopy(files, 0, newfiles, 0, start);
+ }
+ files = newfiles;
+ System.arraycopy(s, 0, files, start, s.length);
+ }
+
+ /**
+ * Find out whether this FileResourceIterator has more elements.
+ * @return whether there are more Resources to iterate over.
+ */
+ public boolean hasNext() {
+ return pos < files.length;
+ }
+
+ /**
+ * Get the next element from this FileResourceIterator.
+ * @return the next Object.
+ */
+ public Resource next() {
+ return nextResource();
+ }
+
+ /**
+ * Not implemented.
+ */
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Convenience method to return the next resource.
+ * @return the next File.
+ */
+ public FileResource nextResource() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ FileResource result = new FileResource(basedir, files[pos++]);
+ result.setProject(project);
+ return result;
+ }
+
+}