storagehub-client-library/src/main/java/org/gcube/common/storagehub/client/dsl/StorageHubClient.java

101 lines
3.3 KiB
Java
Raw Normal View History

package org.gcube.common.storagehub.client.dsl;
2022-03-28 18:28:06 +02:00
import java.net.URI;
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
2019-10-14 10:18:54 +02:00
import org.gcube.common.storagehub.client.proxies.GroupManagerClient;
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
2020-01-16 18:11:46 +01:00
import org.gcube.common.storagehub.client.proxies.UserManagerClient;
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
import org.gcube.common.storagehub.model.items.Item;
public class StorageHubClient {
2022-03-28 18:28:06 +02:00
protected WorkspaceManagerClient wsClient = AbstractPlugin.workspace().build();
protected ItemManagerClient itemclient = AbstractPlugin.item().build();
protected GroupManagerClient groupClient = AbstractPlugin.groups().build();
protected UserManagerClient userClient = AbstractPlugin.users().build();
public StorageHubClient() {}
2022-03-28 18:28:06 +02:00
public StorageHubClient(URI uri) {
wsClient = AbstractPlugin.workspace().at(uri).build();
itemclient = AbstractPlugin.item().at(uri).build();
groupClient = AbstractPlugin.groups().at(uri).build();
userClient = AbstractPlugin.users().at(uri).build();
}
public void impersonate(String user){
wsClient.impersonate(user);
itemclient.impersonate(user);
}
public FolderContainer getWSRoot(){
return new FolderContainer(itemclient, wsClient.getWorkspace());
}
/* public OpenResolver open(Path relativePath) {
Item item = wsClient.retieveItemByPath(relativePath.toPath());
return new OpenResolver(item, itemclient);
}*/
public OpenResolver open(String id) throws StorageHubException{
Item item = itemclient.get(id);
return new OpenResolver(item, itemclient);
}
2020-03-05 15:19:45 +01:00
public FolderContainer openVREFolder() {
return new FolderContainer(itemclient, wsClient.getVreFolder());
}
2019-10-14 10:18:54 +02:00
public ListResolver getVREFolders() {
return new ListResolver((onlyType, includeHidden, excludes) -> wsClient.getVreFolders(excludes), itemclient);
}
public VREFolderManager getVreFolderManager(String vreTitle) {
return new VREFolderManager(wsClient, groupClient, vreTitle);
}
2019-10-14 10:18:54 +02:00
public VREFolderManager getVreFolderManager() {
return new VREFolderManager(wsClient, groupClient, null);
2019-10-14 10:18:54 +02:00
}
public FolderContainer openTrash() {
return new FolderContainer(itemclient, wsClient.getTrashFolder());
}
2020-04-10 13:50:37 +02:00
public void emptyTrash() throws StorageHubException{
wsClient.emptyTrash();
}
public long getTotalVolume() {
return wsClient.getTotalVolume();
}
public long getTotalItemCount() {
return wsClient.getTotalItemCount();
}
2019-10-14 10:18:54 +02:00
2020-04-10 13:50:37 +02:00
public GenericItemContainer restoreThrashItem(String trashItemId) throws StorageHubException {
return new GenericItemContainer(itemclient, wsClient.restoreFromTrash(trashItemId, null));
}
public GenericItemContainer restoreThrashItem(String trashItemId, String destinationFolderId) throws StorageHubException {
return new GenericItemContainer(itemclient, wsClient.restoreFromTrash(trashItemId, destinationFolderId));
}
2020-01-16 18:11:46 +01:00
public void createUserAccount(String userId) throws StorageHubException {
userClient.createUser(userId);
}
public void deleteUserAccount(String userId) throws StorageHubException {
userClient.removeUser(userId);
}
2021-02-08 12:41:58 +01:00
public boolean userExists(String user) throws StorageHubException {
return userClient.exists(user);
}
}