final List<DocumentDesc> docs = new ArrayList<DocumentDesc>();
final List<String> collections = new ArrayList<String>();
if (collection.getPermissionsNoLock().validate(session.getUser(), Permission.READ)) {
DocumentImpl doc;
// Hashtable hash;
Permission perms;
for (final Iterator<DocumentImpl> i = collection.iterator(broker); i.hasNext(); ) {
doc = i.next();
perms = doc.getPermissions();
final DocumentDesc dd = new DocumentDesc();
// hash = new Hashtable(4);
dd.setName(doc.getFileURI().toString());
dd.setOwner(perms.getOwner().getName());
dd.setGroup(perms.getGroup().getName());
dd.setPermissions(perms.getMode());
dd.setType(doc.getResourceType() == DocumentImpl.BINARY_FILE
? DocumentType.BinaryResource
: DocumentType.XMLResource);
docs.add(dd);
}
for(final Iterator<XmldbURI> i = collection.collectionIterator(broker); i.hasNext();) {
collections.add(i.next().toString());
}
}
Permission perms = collection.getPermissionsNoLock();
desc.setCollections(new Strings(collections.toArray(new String[collections.size()])));
desc.setDocuments(new DocumentDescs(docs.toArray(new DocumentDesc[docs.size()])));
desc.setName(collection.getURI().toString());
desc.setCreated(collection.getCreationTime());
desc.setOwner(perms.getOwner().getName());
desc.setGroup(perms.getGroup().getName());
desc.setPermissions(perms.getMode());
return desc;
} catch (final Exception ex){
throw new RemoteException(ex.getMessage());
} finally {
if(collection != null)