- // 1. make sure that all resources are of the same type
- Collection<Resource> principalTypes = null;
- for (Resource r : rs) {
- Collection<Resource> pts = graph.getPrincipalTypes(r);
- if (principalTypes == null) {
- principalTypes = pts;
- } else if (!principalTypes.equals(pts)) {
- //return false;
- StringBuilder sb = new StringBuilder();
- sb.append("Removing resources of different types at the same time is currently not supported.\n\nThe selection contained resources of the following types:\n");
- Set<Resource> differentTypes = new HashSet<Resource>();
- Set<String> typeNames = new TreeSet<String>(AlphanumComparator.CASE_INSENSITIVE_COMPARATOR);
- for (Resource t : rs)
- differentTypes.addAll(graph.getPrincipalTypes(t));
- for (Resource t : differentTypes)
- typeNames.add(NameUtils.getSafeName(graph, t));
- for (String typeName : typeNames)
- sb.append("\t").append(typeName).append("\n");
- throw new CannotRemoveException(sb.toString());
- }
- }