}
catch (SourceException e) {
throw e;
}
catch (IOException e) {
throw new SourceException("Failure getting child", e);
}
if (!isCollection()) {
throw new SourceException("Source is not a collection");
}
final Collection result = new ArrayList();
final TraversableSourceMeta meta = (TraversableSourceMeta) super.response.getExtra();
final String[] children = meta.getChildren();
for (int i = 0; i < children.length; i++) {
Source child;
try {
child = this.tsource.getChild(children[i]);
}
catch (IOException e) {
throw new SourceException("Failure getting child", e);
}
result.add(createSource(getChildURI(super.uri, children[i]), child));
}
return result;