+ private Collection<String> getCmHandleIdsByTrustLevel(final TrustLevel targetTrustLevel) {
+ final Collection<String> selectedCmHandleIds = new HashSet<>();
+
+ for (final Map.Entry<String, TrustLevel> mapEntry : trustLevelPerDmiPlugin.entrySet()) {
+ final String dmiPluginIdentifier = mapEntry.getKey();
+ final TrustLevel dmiTrustLevel = mapEntry.getValue();
+ final Collection<String> candidateCmHandleIds = getCmHandleIdsByDmiPluginIdentifier(dmiPluginIdentifier);
+ for (final String candidateCmHandleId : candidateCmHandleIds) {
+ final TrustLevel candidateCmHandleTrustLevel = trustLevelPerCmHandle.get(candidateCmHandleId);
+ final TrustLevel effectiveTrustlevel =
+ candidateCmHandleTrustLevel.getEffectiveTrustLevel(dmiTrustLevel);
+ if (targetTrustLevel.equals(effectiveTrustlevel)) {
+ selectedCmHandleIds.add(candidateCmHandleId);
+ }
+ }
+ }
+
+ return selectedCmHandleIds;
+ }
+