This is an automated email from the ASF dual-hosted git repository. amanin pushed a commit to branch refactor/strict_storage_connector in repository https://gitbox.apache.org/repos/asf/sis.git
commit eb8954b9960c1515fd9965fc8498a636e0690bda Author: Alexis Manin <[email protected]> AuthorDate: Wed Mar 24 13:27:40 2021 +0100 chore(Storage): mirror Storage connector API in strict version --- .../apache/sis/storage/StrictStorageConnector.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/StrictStorageConnector.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/StrictStorageConnector.java index 22754c7..23934cc 100644 --- a/storage/sis-storage/src/main/java/org/apache/sis/storage/StrictStorageConnector.java +++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/StrictStorageConnector.java @@ -267,7 +267,44 @@ public class StrictStorageConnector implements AutoCloseable { return storage.getOption(key); } + public <T> void setOption(final OptionKey<T> key, final T value) { + storage.setOption(key, value); + } + + public String getStorageName() { + return storage.getStorageName(); + } + + public String getFileExtension() { + return storage.getFileExtension(); + } + /** + * Please use a safe alternative instead, like {@link #useAs(Class, StorageOperatingFunction)}. + * Only call this if safe methods do not support the storage type you require. + * + * @return A connector that does not provides control over resource usage. It does not automatically rewind + * automatically used resources. That means that resource lifecycle becomes <em>entirely</em> caller responsability. + */ + public <T> T getStorageAs(final Class<T> type) throws IllegalArgumentException, DataStoreException { + return storage.getStorageAs(type); + } + + /** + * Please use a safe alternative instead, like {@link #useAs(Class, StorageOperatingFunction)}. + * Only call this if safe methods do not support the storage type you require. + * + * @return A connector that does not provides control over resource usage. It does not automatically rewind + * automatically used resources. That means that resource lifecycle becomes <em>entirely</em> caller responsability. + */ + @Deprecated + public Object getStorage() throws DataStoreException { + return storage.getStorage(); + } + + /** + * Please try to use {@link #useAs(Class, StorageOperatingFunction)} instead. Only call this if safe methods do not + * support the storage type you require. * * @return A connector that does not provides control over resource usage. It does not automatically rewind * automatically used resources. That means that resource lifecycle becomes <em>entirely</em> caller responsability. @@ -276,6 +313,11 @@ public class StrictStorageConnector implements AutoCloseable { return storage; } + @Override + public String toString() { + return storage.toString(); + } + private interface StorageCallable<V> extends Callable<V> { @Override V call() throws IOException, DataStoreException;
