@Override @Guarded(by = ACTIVE) public Asset createAsset(final Bucket bucket, final Format format) { checkNotNull(format); return createAsset(bucket, format.toString()); }
@Override @Guarded(by = ACTIVE) public Component createComponent(final Bucket bucket, final Format format) { checkNotNull(bucket); checkNotNull(format); Component component = componentFactory.createComponent(); component.bucketId(id(bucket)); component.format(format.toString()); component.attributes(new NestedAttributesMap(P_ATTRIBUTES, new HashMap<>())); return component; }
@Override public boolean canDeleteAsset(final Repository repository, final Asset asset) { String repositoryFormat = repository.getFormat().toString(); return canDeleteAssetInRepository(repository, repositoryFormat, variableResolverAdapterManager.get(repositoryFormat), asset); }
private UploadHandler getUploadHandler(final Repository repository) { if (!(repository.getType() instanceof HostedType)) { throw new ValidationErrorsException( format("Uploading components to a '%s' type repository is unsupported, must be '%s'", repository.getType().getValue(), HostedType.NAME)); } String repositoryFormat = repository.getFormat().toString(); UploadHandler uploadHandler = uploadHandlers.get(repositoryFormat); if (uploadHandler == null) { throw new ValidationErrorsException( format("Uploading components to '%s' repositories is unsupported", repositoryFormat)); } return uploadHandler; }
@Override public boolean canDeleteComponent(final Repository repository, final Component component) { boolean canDeleteComponent = true; String repositoryFormat = repository.getFormat().toString(); VariableResolverAdapter variableResolverAdapter = variableResolverAdapterManager.get(repositoryFormat); try (StorageTx storageTx = repository.facet(StorageFacet.class).txSupplier().get()) { storageTx.begin(); for (Asset asset : storageTx.browseAssets(component)) { if (!canDeleteAssetInRepository(repository, repositoryFormat, variableResolverAdapter, asset)) { canDeleteComponent = false; break; } } } return canDeleteComponent; }