@Override public BrowseResult<Asset> browseComponentAssets( final Repository repository, final String componentId) { checkNotNull(repository); checkNotNull(componentId); try (StorageTx storageTx = repository.facet(StorageFacet.class).txSupplier().get()) { storageTx.begin(); Component component = storageTx.findComponent(new DetachedEntityId(componentId)); if (component == null) { return new BrowseResult<>(0, Collections.emptyList()); } VariableResolverAdapter variableResolverAdapter = variableResolverAdapterManager.get(component.format()); List<Asset> assets = StreamSupport.stream(storageTx.browseAssets(component).spliterator(), false) .filter( (Asset asset) -> contentPermissionChecker.isPermitted( repository.getName(), asset.format(), BreadActions.BROWSE, variableResolverAdapter.fromAsset(asset))) .collect(Collectors.toList()); return new BrowseResult<>(assets.size(), assets); } }