public void removePaths(List<? extends ItemPath> remove) { if (items != null) { for (Iterator<Item<?, ?>> iterator = items.iterator(); iterator.hasNext(); ) { Item<?, ?> item = iterator.next(); ItemPath itemPath = item.getPath().removeIds(); if (ItemPathCollectionsUtil.containsEquivalent(remove, itemPath)) { iterator.remove(); } else if (ItemPathCollectionsUtil.containsSuperpath(remove, itemPath)) { if (item instanceof PrismContainer) { ((PrismContainer<?>) item).getValues().forEach(v -> v.removePaths(remove)); } } } } }
assertTrue(ItemPathCollectionsUtil.containsSubpath(onlyEmpty, pathFoo)); assertFalse(ItemPathCollectionsUtil.containsSuperpathOrEquivalent(onlyEmpty, pathFoo)); assertFalse(ItemPathCollectionsUtil.containsSuperpath(onlyEmpty, pathFoo)); assertFalse(ItemPathCollectionsUtil.containsSuperpath(onlyEmpty, empty)); assertFalse(ItemPathCollectionsUtil.containsSuperpath(onlyFoo, pathFoo)); assertTrue(ItemPathCollectionsUtil.containsSuperpath(onlyFoo, empty)); assertFalse(ItemPathCollectionsUtil.containsSuperpath(onlyFoo, pathZoo)); assertTrue(ItemPathCollectionsUtil.containsSuperpath(onlyFooBar, pathFoo)); assertFalse(ItemPathCollectionsUtil.containsSuperpath(onlyFooBar, pathFooBarBaz));