Подскажите плиз логику данного метода
private void recalculatePurchasedObjectPermissions(long objectId, ReferencedObjectType objectType) {
        List<String> objectProductsIds = purchaseService.getObjectProducts(objectId, objectType)
                .stream()
                .map(productToReferencedObject -> productToReferencedObject.getProduct().getProductId())
                .collect(Collectors.toList());
        revokeAccessViaRemovedProducts(objectId, objectType, objectProductsIds);
        grantAccessViaAddedProducts(objectId, objectType, objectProductsIds);
    }