private void loadTopLevelServerAndServiceTypes(final TypesLoadedCallback callback,
final EnumSet<MetadataType> metadataTypes, final ResourceTypeCriteria criteria,
final Map<Integer, ResourceType> cachedTypes) {
ResourceTypeCriteria topLevelCriteria = new ResourceTypeCriteria();
topLevelCriteria.addFilterIgnored(null); // we will cache both unignored and ignored types
topLevelCriteria.addFilterCategories(ResourceCategory.SERVER, ResourceCategory.SERVICE);
topLevelCriteria.addFilterParentResourceTypesEmpty(true);
topLevelCriteria.addSortCategory(PageOrdering.DESC);
topLevelCriteria.addSortName(PageOrdering.ASC);
resourceTypeService.findResourceTypesByCriteria(topLevelCriteria, new AsyncCallback<PageList<ResourceType>>() {
public void onSuccess(PageList<ResourceType> types) {