|
|
@@ -19,10 +19,12 @@ |
|
|
|
package org.apache.tools.ant.types.resources; |
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Stack; |
|
|
|
import java.util.Vector; |
|
|
|
import java.util.Iterator; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.AbstractCollection; |
|
|
|
import java.util.NoSuchElementException; |
|
|
|
|
|
|
@@ -65,7 +67,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
|
|
|
|
MyCollection() { |
|
|
|
size = 0; |
|
|
|
for (Iterator rci = rc.iterator(); rci.hasNext();) { |
|
|
|
for (Iterator rci = getNested().iterator(); rci.hasNext();) { |
|
|
|
size += ((ResourceCollection) rci.next()).size(); |
|
|
|
} |
|
|
|
} |
|
|
@@ -76,7 +78,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
return new MyIterator(); |
|
|
|
} |
|
|
|
private class MyIterator implements Iterator { |
|
|
|
private Iterator rci = rc.iterator(); |
|
|
|
private Iterator rci = getNested().iterator(); |
|
|
|
private Iterator ri = null; |
|
|
|
|
|
|
|
public boolean hasNext() { |
|
|
@@ -99,8 +101,8 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private Vector rc = new Vector(); |
|
|
|
private Collection coll = null; |
|
|
|
private Vector rc; |
|
|
|
private Collection coll; |
|
|
|
|
|
|
|
/** |
|
|
|
* Add a ResourceCollection. |
|
|
@@ -113,6 +115,9 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
if (c == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (rc == null) { |
|
|
|
rc = new Vector(); |
|
|
|
} |
|
|
|
rc.add(c); |
|
|
|
FailFast.invalidate(this); |
|
|
|
coll = null; |
|
|
@@ -153,7 +158,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
} |
|
|
|
validate(); |
|
|
|
|
|
|
|
for (Iterator i = rc.iterator(); i.hasNext();) { |
|
|
|
for (Iterator i = getNested().iterator(); i.hasNext();) { |
|
|
|
if ((!((ResourceCollection) i.next()).isFilesystemOnly())) { |
|
|
|
return false; |
|
|
|
} |
|
|
@@ -161,6 +166,27 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Format this BaseResourceCollectionContainer as a String. |
|
|
|
* @return a descriptive <code>String</code>. |
|
|
|
*/ |
|
|
|
public synchronized String toString() { |
|
|
|
if (isReference()) { |
|
|
|
return getCheckedRef().toString(); |
|
|
|
} |
|
|
|
if (coll == null || coll.isEmpty()) { |
|
|
|
return ""; |
|
|
|
} |
|
|
|
StringBuffer sb = new StringBuffer(); |
|
|
|
for (Iterator i = coll.iterator(); i.hasNext();) { |
|
|
|
if (sb.length() > 0) { |
|
|
|
sb.append(File.pathSeparatorChar); |
|
|
|
} |
|
|
|
sb.append(i.next()); |
|
|
|
} |
|
|
|
return sb.toString(); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Overrides the version of DataType to recurse on all DataType |
|
|
|
* child elements that may have been added. |
|
|
@@ -176,7 +202,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
if (isReference()) { |
|
|
|
super.dieOnCircularReference(stk, p); |
|
|
|
} else { |
|
|
|
for (Iterator i = rc.iterator(); i.hasNext();) { |
|
|
|
for (Iterator i = getNested().iterator(); i.hasNext();) { |
|
|
|
Object o = i.next(); |
|
|
|
if (o instanceof DataType) { |
|
|
|
invokeCircularReferenceCheck((DataType) o, stk, p); |
|
|
@@ -200,25 +226,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
coll = (coll == null) ? new MyCollection() : coll; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Format this BaseResourceCollectionContainer as a String. |
|
|
|
* @return a descriptive <code>String</code>. |
|
|
|
*/ |
|
|
|
public synchronized String toString() { |
|
|
|
if (isReference()) { |
|
|
|
return getCheckedRef().toString(); |
|
|
|
} |
|
|
|
if (coll == null || coll.isEmpty()) { |
|
|
|
return ""; |
|
|
|
} |
|
|
|
StringBuffer sb = new StringBuffer(); |
|
|
|
for (Iterator i = coll.iterator(); i.hasNext();) { |
|
|
|
if (sb.length() > 0) { |
|
|
|
sb.append(File.pathSeparatorChar); |
|
|
|
} |
|
|
|
sb.append(i.next()); |
|
|
|
} |
|
|
|
return sb.toString(); |
|
|
|
private synchronized List getNested() { |
|
|
|
return rc == null ? Collections.EMPTY_LIST : rc; |
|
|
|
} |
|
|
|
|
|
|
|
} |