From 62c06a0633a88f0554360cf6a1758f9ebb75dbb2 Mon Sep 17 00:00:00 2001 From: lucio Date: Thu, 24 Nov 2022 14:28:46 +0100 Subject: [PATCH] added exception for storages --- .../StorageIdNotFoundException.java | 28 +++++++++++++++++++ .../model/storages/StorageBackend.java | 7 +++-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/gcube/common/storagehub/model/exceptions/StorageIdNotFoundException.java diff --git a/src/main/java/org/gcube/common/storagehub/model/exceptions/StorageIdNotFoundException.java b/src/main/java/org/gcube/common/storagehub/model/exceptions/StorageIdNotFoundException.java new file mode 100644 index 0000000..4aa63ab --- /dev/null +++ b/src/main/java/org/gcube/common/storagehub/model/exceptions/StorageIdNotFoundException.java @@ -0,0 +1,28 @@ +package org.gcube.common.storagehub.model.exceptions; + +public class StorageIdNotFoundException extends StorageHubException { + + /** + * + */ + private static final long serialVersionUID = 7225259271771357699L; + + public StorageIdNotFoundException(String id, String storageName, Throwable cause) { + super(String.format("id %s not found in %s", id, storageName), cause); + } + + public StorageIdNotFoundException(String id, String storageName) { + super(String.format("id %s not found in %s", id, storageName)); + } + + @Override + public String getErrorMessage() { + return null; + } + + @Override + public int getStatus() { + return 404; + } + +} diff --git a/src/main/java/org/gcube/common/storagehub/model/storages/StorageBackend.java b/src/main/java/org/gcube/common/storagehub/model/storages/StorageBackend.java index 3479728..c3db008 100644 --- a/src/main/java/org/gcube/common/storagehub/model/storages/StorageBackend.java +++ b/src/main/java/org/gcube/common/storagehub/model/storages/StorageBackend.java @@ -3,6 +3,7 @@ package org.gcube.common.storagehub.model.storages; import java.io.InputStream; import java.util.Map; +import org.gcube.common.storagehub.model.exceptions.StorageIdNotFoundException; import org.gcube.common.storagehub.model.items.nodes.Content; import org.gcube.common.storagehub.model.items.nodes.PayloadBackend; @@ -36,12 +37,14 @@ public abstract class StorageBackend { public abstract MetaInfo upload(InputStream stream, String relativePath, String name, Long size); - public abstract InputStream download(Content item); + public abstract InputStream download(Content item) throws StorageIdNotFoundException; - public abstract InputStream download(String id); + public abstract InputStream download(String id) throws StorageIdNotFoundException; public abstract Map getFileMetadata(String id); + public abstract MetaInfo upload(InputStream stream, String relativePath, String name, String storageId, Long size); + @Deprecated public abstract String getTotalSizeStored(); @Deprecated