}
if (folderComponents.hasComponentType(componentTypes[i])) {
Component component = folderComponents.getComponentByType(componentTypes[i]);
ListMetadataQuery folderQuery = new ListMetadataQuery();
folderQuery.setType(component.getFolderNameIfFolderTypeMdComponent());
try {
FileMetadataExt ext = listMetadata(connection, new ListMetadataQuery[] { folderQuery }, monitor);
if (ext != null && Utils.isNotEmpty(ext.getFileProperties())) {
for (FileProperties file : ext.getFileProperties()) {
ListMetadataQuery query = new ListMetadataQuery();
query.setType(componentTypes[i]);
query.setFolder(file.getFullName());
listMetadataQueryArray.add(query);
}
}
} catch (Exception e) {
logger.error("An error occured while querying for " + component.getComponentType() + " folders", e);
}
//Don't query for abstract types
} else if (!Constants.ABSTRACT_SHARING_RULE_TYPES.contains(componentTypes[i])) {
ListMetadataQuery query = new ListMetadataQuery();
query.setType(componentTypes[i]);
listMetadataQueryArray.add(query);
}
}
return listMetadataQueryArray.toArray(new ListMetadataQuery[listMetadataQueryArray.size()]);