|
|
@@ -77,11 +77,14 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
private class MyIterator implements Iterator { |
|
|
|
Iterator rci = rc.iterator(); |
|
|
|
Iterator ri = null; |
|
|
|
|
|
|
|
public boolean hasNext() { |
|
|
|
if ((ri == null || !ri.hasNext()) && rci.hasNext()) { |
|
|
|
boolean result = ri != null && ri.hasNext(); |
|
|
|
while (!result && rci.hasNext()) { |
|
|
|
ri = ((ResourceCollection) rci.next()).iterator(); |
|
|
|
result = ri.hasNext(); |
|
|
|
} |
|
|
|
return ri != null && ri.hasNext(); |
|
|
|
return result; |
|
|
|
} |
|
|
|
public Object next() { |
|
|
|
if (!hasNext()) { |
|
|
@@ -95,7 +98,7 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private Vector rc = null; |
|
|
|
private Vector rc = new Vector(); |
|
|
|
private Collection coll = null; |
|
|
|
|
|
|
|
/** |
|
|
@@ -106,7 +109,9 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
if (isReference()) { |
|
|
|
throw noChildrenAllowed(); |
|
|
|
} |
|
|
|
rc = (rc == null) ? new Vector() : rc; |
|
|
|
if (c == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
rc.add(c); |
|
|
|
FailFast.invalidate(this); |
|
|
|
coll = null; |
|
|
@@ -146,18 +151,9 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
return getRef().isFilesystemOnly(); |
|
|
|
} |
|
|
|
validate(); |
|
|
|
//first the easy way, if all children are filesystem-only, return true: |
|
|
|
boolean goEarly = true; |
|
|
|
for (Iterator i = rc.iterator(); goEarly && i.hasNext();) { |
|
|
|
goEarly &= ((ResourceCollection) i.next()).isFilesystemOnly(); |
|
|
|
} |
|
|
|
if (goEarly) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
/* now check each Resource in case the child only |
|
|
|
lets through files from any children IT may have: */ |
|
|
|
for (Iterator i = coll.iterator(); i.hasNext();) { |
|
|
|
if (!(i.next() instanceof FileResource)) { |
|
|
|
|
|
|
|
for (Iterator i = rc.iterator(); i.hasNext();) { |
|
|
|
if ((!((ResourceCollection) i.next()).isFilesystemOnly())) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
@@ -200,9 +196,6 @@ public class Resources extends DataType implements ResourceCollection { |
|
|
|
|
|
|
|
private synchronized void validate() { |
|
|
|
dieOnCircularReference(); |
|
|
|
if (rc == null || rc.size() == 0) { |
|
|
|
throw new BuildException("Resources: no resources specified."); |
|
|
|
} |
|
|
|
coll = (coll == null) ? new MyCollection() : coll; |
|
|
|
} |
|
|
|
|
|
|
|