/** * Returns a new {@code EffectedPermissions} containing the given {@code grantedPermissions} and {@code * revokedPermissions}. * * @param grantedPermissions the Permissions which should be granted, may be {@code null}. * @param revokedPermissions the Permissions which should be revoked, may be {@code null}. * @return the new {@code EffectedPermissions}. */ static EffectedPermissions newInstance(@Nullable final Iterable<String> grantedPermissions, @Nullable final Iterable<String> revokedPermissions) { return PoliciesModelFactory.newEffectedPermissions(grantedPermissions, revokedPermissions); }
@Nonnull private Resources getFinalResources(final CharSequence label) { final Map<ResourceKey, Permissions> grantedMap = retrieveGrantedPermissions(label); final Map<ResourceKey, Permissions> revokedMap = retrieveRevokedPermissions(label); final Collection<ResourceKey> allResourceKeys = new LinkedHashSet<>(grantedMap.keySet()); allResourceKeys.addAll(revokedMap.keySet()); final Collection<Resource> resourcesList = allResourceKeys.stream() .map(resourceKey -> { final Permissions granted = grantedMap.get(resourceKey); final Permissions revoked = revokedMap.get(resourceKey); final EffectedPermissions ep = PoliciesModelFactory.newEffectedPermissions(granted, revoked); return PoliciesModelFactory.newResource(resourceKey, ep); }) .collect(Collectors.toList()); return PoliciesModelFactory.newResources(resourcesList); }