implementing subtasks under #19669

This commit is contained in:
Francesco Mangiacrapa 2020-07-15 15:40:15 +02:00
parent eb703801a8
commit 2e43e8029f
8 changed files with 260 additions and 797 deletions

View File

@ -41,5 +41,16 @@
<attribute name="m2e-apt" value="true"/> <attribute name="m2e-apt" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path=".apt_generated">
<attributes>
<attribute name="optional" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path=".apt_generated_tests">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>

2
.gitignore vendored
View File

@ -1 +1,3 @@
/target/ /target/
/.apt_generated/
/.apt_generated_tests/

View File

@ -2,5 +2,6 @@
<wb-module deploy-name="storagehub-client-wrapper"> <wb-module deploy-name="storagehub-client-wrapper">
<wb-resource deploy-path="/" source-path="/src/main/java"/> <wb-resource deploy-path="/" source-path="/src/main/java"/>
<wb-resource deploy-path="/" source-path="/src/main/resources"/> <wb-resource deploy-path="/" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/.apt_generated"/>
</wb-module> </wb-module>
</project-modules> </project-modules>

View File

@ -3,48 +3,57 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v0-7-1] [r4-23-0] - [2020-05-18] ## [v1-0-0] [r4-25-0] - 2020-07-15
** Enhancements ** #### Enhancements
[#19317] component moved from 0.y.z to 1.y.z version
[#19668] add the method updateDescriptionForItem
## [v0-7-1] [r4-23-0] - 2020-05-18
#### Enhancements
[#19058] added the folder destination Id to restore operation [#19058] added the folder destination Id to restore operation
## [v0-7-0] [r4-22-0] - [2020-04-16] ## [v0-7-0] [r4-22-0] - 2020-04-16
** Enhancements ** #### Enhancements
[Task #19087] provide a getItem (without getRoot inside) for Workspace-Explorer-App [#19087] provide a getItem (without getRoot inside) for Workspace-Explorer-App
## [v0-6-2] [r4-21-0] - [2020-03-11] ## [v0-6-2] [r4-21-0] - 2020-03-11
** New features ** #### New features
[#18174] Moved to new search facility provided by SHUB [#18174] Moved to new search facility provided by SHUB
## [0-6-1] - [2019-12-19] ## [v0-6-1] - 2019-12-19
Ported to Git and Jenkins Ported to Git and Jenkins
## [0-6-0] - [2019-10-01] ## [v0-6-0] - 2019-10-01
[Task #16688] Integrating new method added into SHUB [Task #16688] Integrating new method added into SHUB
## [0-5-0] - [2019-08-01] ## [v0-5-0] - 2019-08-01
Released due to exceptions thrown by SHUB Released due to exceptions thrown by SHUB
## [0-4-0] - [2019-06-01] ## [v0-4-0] - 2019-06-01
Updated to new SHub interface Updated to new SHub interface
@ -52,7 +61,7 @@ Added method getMetadata
## [0-3-0] - [2018-03-01] ## [v0-3-0] - 2018-03-01
[Task #12059] added delete item [Task #12059] added delete item
@ -76,13 +85,13 @@ Added method getMetadata
## [0-2-0] - [2018-06-20] ## [v0-2-0] - 2018-06-20
minor fixes minor fixes
## [0-1-0] - [2018-06-20] ## [v0-1-0] - 2018-06-20
[Task #12059] first release [Task #12059] first release

View File

@ -10,7 +10,7 @@
</parent> </parent>
<groupId>org.gcube.common</groupId> <groupId>org.gcube.common</groupId>
<artifactId>storagehub-client-wrapper</artifactId> <artifactId>storagehub-client-wrapper</artifactId>
<version>0.7.1</version> <version>1.0.0-SNAPSHOT</version>
<name>storagehub-client-wrapper</name> <name>storagehub-client-wrapper</name>
<description>This is a wrapper of storagehub-client library. It allows to interact with storagehub in a simplified way by exposing several utilities. Moreover, It exposes by another inteface java beans as defined in (the old) HL interfaces</description> <description>This is a wrapper of storagehub-client library. It allows to interact with storagehub in a simplified way by exposing several utilities. Moreover, It exposes by another inteface java beans as defined in (the old) HL interfaces</description>
<scm> <scm>

View File

@ -925,6 +925,25 @@ public class StorageHubClientService {
} }
/**
* Update description for item.
*
* @param itemId the item id
* @param newDescription the new description
* @return the description updated
* @throws Exception the exception
*/
public String updateDescriptionForItem(String itemId, String newDescription) throws Exception {
Validate.notNull(itemId, "Bad request the itemId is null");
setContextProviders(scope, authorizationToken);
throw new Exception("Not implemented yet by SHUB");
}
/** /**
* To string. * To string.
@ -949,4 +968,5 @@ public class StorageHubClientService {
} }
} }

View File

@ -25,10 +25,7 @@ import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry;
import org.gcube.common.storagehub.model.service.Version; import org.gcube.common.storagehub.model.service.Version;
import org.gcube.common.storagehubwrapper.server.converter.HLMapper; import org.gcube.common.storagehubwrapper.server.converter.HLMapper;
import org.gcube.common.storagehubwrapper.server.tohl.Workspace; import org.gcube.common.storagehubwrapper.server.tohl.Workspace;
import org.gcube.common.storagehubwrapper.shared.ACLType;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem; import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceVREFolder;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
@ -1500,356 +1497,20 @@ public final class WorkspaceStorageHubClientService implements Workspace{
throw new Exception("The item with id '"+folderId+"' is not a folder"); throw new Exception("The item with id '"+folderId+"' is not a folder");
} }
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* TODO
*
* FOLLOWING METHODS ARE NOT IMPLEMENTED;
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/**
* Change description.
*
* @param itemId the item id
* @param newDescription the new description
* @throws ItemNotFoundException the item not found exception
* @throws InternalErrorException the internal error exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#changeDescription(java.lang.String, java.lang.String)
*/
@Override @Override
public void changeDescription(String itemId, String newDescription) public String updateDescriptionForItem(String itemId, String newDescription) throws Exception {
throws ItemNotFoundException, InternalErrorException {
String updatedDescription = null;
// TODO Auto-generated method stub try{
updatedDescription = storageHubClientService.updateDescriptionForItem(itemId, newDescription);
}catch(Exception e){
String error = "Error on updating the description for item with id: "+itemId;
LOGGER.error(error, e);
throw new Exception(error);
}
return updatedDescription;
} }
/**
* Search by mime type.
*
* @param mimeType the mime type
* @return the list
* @throws InternalErrorException the internal error exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#searchByMimeType(java.lang.String)
*/
@Override
public List<WorkspaceItem> searchByMimeType(String mimeType)
throws InternalErrorException {
// TODO Auto-generated method stub
return null;
}
/**
* Creates the shared folder.
*
* @param name the name
* @param description the description
* @param users the users
* @param destinationFolderId the destination folder id
* @return the workspace shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createSharedFolder(java.lang.String, java.lang.String, java.util.List, java.lang.String)
*/
@Override
public WorkspaceSharedFolder createSharedFolder(
String name, String description, List<String> users,
String destinationFolderId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Share folder.
*
* @param users the users
* @param destinationFolderId the destination folder id
* @return the workspace shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#shareFolder(java.util.List, java.lang.String)
*/
@Override
public WorkspaceSharedFolder shareFolder(
List<String> users, String destinationFolderId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Share.
*
* @param users the users
* @param itemId the item id
* @return the workspace shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#share(java.util.List, java.lang.String)
*/
@Override
public WorkspaceSharedFolder share(List<String> users, String itemId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Creates the gcube item.
*
* @param name the name
* @param description the description
* @param scopes the scopes
* @param creator the creator
* @param itemType the item type
* @param properties the properties
* @param destinationFolderId the destination folder id
* @return the workspace item
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
* @throws InternalErrorException the internal error exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createGcubeItem(java.lang.String, java.lang.String, java.util.List, java.lang.String, java.lang.String, java.util.Map, java.lang.String)
*/
@Override
public WorkspaceItem createGcubeItem(
String name, String description, List<String> scopes, String creator,
String itemType, Map<String, String> properties,
String destinationFolderId)
throws InsufficientPrivilegesException,
WorkspaceFolderNotFoundException, InternalErrorException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Unshare.
*
* @param itemId the item id
* @return the workspace item
* @throws InternalErrorException the internal error exception
* @throws ItemNotFoundException the item not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#unshare(java.lang.String)
*/
@Override
public WorkspaceItem unshare(String itemId)
throws InternalErrorException, ItemNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Gets the my special folders.
*
* @return the my special folders
* @throws InternalErrorException the internal error exception
* @throws ItemNotFoundException the item not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getMySpecialFolders()
*/
@Override
public WorkspaceFolder getMySpecialFolders()
throws InternalErrorException, ItemNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Search by properties.
*
* @param properties the properties
* @return the list
* @throws InternalErrorException the internal error exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#searchByProperties(java.util.List)
*/
@Override
public List<WorkspaceItem> searchByProperties(List<String> properties)
throws InternalErrorException {
// TODO Auto-generated method stub
return null;
}
/**
* Creates the VRE folder.
*
* @param scope the scope
* @param description the description
* @param displayName the display name
* @param privilege the privilege
* @return the workspace VRE folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createVREFolder(java.lang.String, java.lang.String, java.lang.String, org.gcube.portal.storagehubwrapper.shared.ACLType)
*/
@Override
public WorkspaceVREFolder createVREFolder(
String scope, String description, String displayName, ACLType privilege)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException {
// TODO Auto-generated method stub
return null;
}
/**
* Gets the public folders.
*
* @return the public folders
* @throws InternalErrorException the internal error exception
*/
/* (non-Javadoc)
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getPublicFolders()
*/
@Override
public List<WorkspaceItem> getPublicFolders()
throws InternalErrorException {
// TODO Auto-generated method stub
return null;
}
} }

View File

@ -10,11 +10,9 @@ import java.util.Map;
import org.gcube.common.storagehub.model.items.Item; import org.gcube.common.storagehub.model.items.Item;
import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry; import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry;
import org.gcube.common.storagehubwrapper.shared.ACLType; import org.gcube.common.storagehubwrapper.server.WorkspaceStorageHubClientService;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder; import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem; import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceVREFolder;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
@ -27,26 +25,23 @@ import org.gcube.common.storagehubwrapper.shared.tohl.items.ItemStreamDescriptor
import org.gcube.common.storagehubwrapper.shared.tohl.items.PropertyMap; import org.gcube.common.storagehubwrapper.shared.tohl.items.PropertyMap;
import org.gcube.common.storagehubwrapper.shared.tohl.items.URLItem; import org.gcube.common.storagehubwrapper.shared.tohl.items.URLItem;
// TODO: Auto-generated Javadoc // TODO: Auto-generated Javadoc
/** /**
* The Interface Workspace. * The Interface Workspace.
* *
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
* Jun 15, 2018 * Jun 15, 2018
* *
* Represents a HL user workspace. * Represents a HL user workspace.
*/ */
public interface Workspace{ public interface Workspace {
/** /**
* Gets the owner. * Gets the owner.
* *
* @return the owner * @return the owner
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public String getOwner() throws InternalErrorException, Exception; public String getOwner() throws InternalErrorException, Exception;
@ -55,11 +50,10 @@ public interface Workspace{
* *
* @return the root. * @return the root.
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceFolder getRoot() throws InternalErrorException, Exception; public WorkspaceFolder getRoot() throws InternalErrorException, Exception;
/** /**
* Gets the children. * Gets the children.
* *
@ -69,14 +63,13 @@ public interface Workspace{
*/ */
public List<? extends WorkspaceItem> getChildren(String id) throws Exception; public List<? extends WorkspaceItem> getChildren(String id) throws Exception;
/** /**
* Gets the parents by id. * Gets the parents by id.
* *
* @param id the id * @param id the id
* @return the parents by id * @return the parents by id
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public List<? extends WorkspaceItem> getParentsById(String id) throws InternalErrorException, Exception; public List<? extends WorkspaceItem> getParentsById(String id) throws InternalErrorException, Exception;
@ -85,75 +78,87 @@ public interface Workspace{
* *
* @param itemId the item id. * @param itemId the item id.
* @return the item. * @return the item.
* @throws ItemNotFoundException if the item has not been found. * @throws ItemNotFoundException if the item has not been found.
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem getItem(String itemId) throws ItemNotFoundException, InternalErrorException, Exception; public WorkspaceItem getItem(String itemId) throws ItemNotFoundException, InternalErrorException, Exception;
/** /**
* Return the item with the specified id. * Return the item with the specified id.
* *
* @param itemId the item id. * @param itemId the item id.
* @param withAccounting the with accounting * @param withAccounting the with accounting
* @param withFileDetails the with file details * @param withFileDetails the with file details
* @param withMapProperties the with map properties * @param withMapProperties the with map properties
* @return the item. * @return the item.
* @throws ItemNotFoundException if the item has not been found. * @throws ItemNotFoundException if the item has not been found.
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem getItem(String itemId, boolean withAccounting, boolean withFileDetails, boolean withMapProperties) throws ItemNotFoundException, InternalErrorException, Exception; public WorkspaceItem getItem(String itemId, boolean withAccounting, boolean withFileDetails,
boolean withMapProperties) throws ItemNotFoundException, InternalErrorException, Exception;
/** /**
* Create a new folder with specified name. * Create a new folder with specified name. The new folder is created into the
* The new folder is created into the specified folder. * specified folder.
* *
* @param name the folder name. * @param name the folder name.
* @param description the folder description. * @param description the folder description.
* @param destinationFolderId the destination folder. * @param destinationFolderId the destination folder.
* @return the new folder. * @return the new folder.
* @throws InternalErrorException if an internal error occurs. * @throws InternalErrorException if an internal error occurs.
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation. * @throws InsufficientPrivilegesException if the user don't have sufficient
* @throws ItemAlreadyExistException if an item with the same exist in the destination folder. * privileges to perform this
* @throws WrongDestinationException if the destination item is not a folder. * operation.
* @throws ItemNotFoundException if the destination folder has not been found. * @throws ItemAlreadyExistException if an item with the same exist in
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found. * the destination folder.
* @throws Exception the exception * @throws WrongDestinationException if the destination item is not a
* folder.
* @throws ItemNotFoundException if the destination folder has not
* been found.
* @throws WorkspaceFolderNotFoundException if the destination folder has not
* been found.
* @throws Exception the exception
*/ */
public WorkspaceFolder createFolder(String name, String description, String destinationFolderId) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException, Exception; public WorkspaceFolder createFolder(String name, String description, String destinationFolderId)
throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException,
WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException, Exception;
/** /**
* Create a new folder with properties. * Create a new folder with properties.
* *
* @param name the name * @param name the name
* @param description the description * @param description the description
* @param destinationFolderId the destination folder id * @param destinationFolderId the destination folder id
* @param properties the properties * @param properties the properties
* @return the new folder * @return the new folder
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges
* @throws ItemAlreadyExistException the item already exist exception * exception
* @throws WrongDestinationException the wrong destination exception * @throws ItemAlreadyExistException the item already exist exception
* @throws ItemNotFoundException the item not found exception * @throws WrongDestinationException the wrong destination exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception * @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found
* exception
*/ */
public WorkspaceFolder createFolder(String name, String description, String destinationFolderId, Map<String, String> properties) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException; public WorkspaceFolder createFolder(String name, String description, String destinationFolderId,
Map<String, String> properties)
throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException,
WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException;
/** /**
* Upload file. * Upload file.
* *
* @param folderId the folder id * @param folderId the folder id
* @param inputStream the input stream * @param inputStream the input stream
* @param fileName the file name * @param fileName the file name
* @param fileDescription the file description * @param fileDescription the file description
* @return the workspace item * @return the workspace item
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem uploadFile(String folderId, InputStream inputStream, String fileName, String fileDescription) throws Exception; public WorkspaceItem uploadFile(String folderId, InputStream inputStream, String fileName, String fileDescription)
throws Exception;
/** /**
* Gets the shared folder members. * Gets the shared folder members.
@ -164,29 +169,33 @@ public interface Workspace{
*/ */
public List<String> getSharedFolderMembers(String folderid) throws Exception; public List<String> getSharedFolderMembers(String folderid) throws Exception;
/** /**
* Check if an item with the specified name exists in the specified folder. * Check if an item with the specified name exists in the specified folder.
* @param name the name to check. *
* @param name the name to check.
* @param folderId the folder where to search the item. * @param folderId the folder where to search the item.
* @return <code>true</code> if the item exists, <code>false</code> otherwise. * @return <code>true</code> if the item exists, <code>false</code> otherwise.
* @throws InternalErrorException if an error occurs. * @throws InternalErrorException if an error occurs.
* @throws ItemNotFoundException if the folder has not been found. * @throws ItemNotFoundException if the folder has not been found.
* @throws WrongItemTypeException if the folderId referrer to an item with type different from Workspace or folder. * @throws WrongItemTypeException if the folderId referrer to an item with type
* different from Workspace or folder.
*/ */
public boolean exists(String name, String folderId) throws InternalErrorException, ItemNotFoundException, WrongItemTypeException; public boolean exists(String name, String folderId)
throws InternalErrorException, ItemNotFoundException, WrongItemTypeException;
/** /**
* Get an item with the specified name in the specified folder. * Get an item with the specified name in the specified folder.
* @param name the item name to find. *
* @param name the item name to find.
* @param folderId the folder where to search the item. * @param folderId the folder where to search the item.
* @return the item if the item is found, <code>null</code> otherwise. * @return the item if the item is found, <code>null</code> otherwise.
* @throws InternalErrorException if an error occurs. * @throws InternalErrorException if an error occurs.
* @throws ItemNotFoundException if the folder has not been found. * @throws ItemNotFoundException if the folder has not been found.
* @throws WrongItemTypeException if the folderId referrer to an item with type different from Workspace or folder. * @throws WrongItemTypeException if the folderId referrer to an item with type
* different from Workspace or folder.
*/ */
public List<WorkspaceItem> find(String name, String folderId) throws InternalErrorException, ItemNotFoundException, WrongItemTypeException; public List<WorkspaceItem> find(String name, String folderId)
throws InternalErrorException, ItemNotFoundException, WrongItemTypeException;
/** /**
* Gets the root shared folder. * Gets the root shared folder.
@ -197,8 +206,6 @@ public interface Workspace{
*/ */
public WorkspaceItem getRootSharedFolder(String itemId) throws Exception; public WorkspaceItem getRootSharedFolder(String itemId) throws Exception;
/** /**
* Checks if is item shared. * Checks if is item shared.
* *
@ -208,7 +215,6 @@ public interface Workspace{
*/ */
public boolean isItemShared(String itemId) throws Exception; public boolean isItemShared(String itemId) throws Exception;
/** /**
* Gets the VRE folders id. * Gets the VRE folders id.
* *
@ -222,12 +228,11 @@ public interface Workspace{
* *
* @return the trash folder * @return the trash folder
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem getTrash() throws InternalErrorException, ItemNotFoundException, Exception; public WorkspaceItem getTrash() throws InternalErrorException, ItemNotFoundException, Exception;
/** /**
* Empty trash. * Empty trash.
* *
@ -235,44 +240,41 @@ public interface Workspace{
*/ */
public void emptyTrash() throws Exception; public void emptyTrash() throws Exception;
/** /**
* Restore thrash item. * Restore thrash item.
* *
* @param itemId the item id * @param itemId the item id
* @param destinationFolderId the destination folder id * @param destinationFolderId the destination folder id
* @return the workspace item * @return the workspace item
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem restoreThrashItem(String itemId, String destinationFolderId) throws Exception; public WorkspaceItem restoreThrashItem(String itemId, String destinationFolderId) throws Exception;
/** /**
* Gets the filtered children. * Gets the filtered children.
* *
* @param id the id * @param id the id
* @param aType the a type * @param aType the a type
* @return the filtered children * @return the filtered children
* @throws Exception the exception * @throws Exception the exception
*/ */
public List<? extends WorkspaceItem> getFilteredChildren(String id, Class<? extends Item> aType) throws Exception; public List<? extends WorkspaceItem> getFilteredChildren(String id, Class<? extends Item> aType) throws Exception;
/** /**
* Rename an item. * Rename an item.
* *
* @param itemId the item id. * @param itemId the item id.
* @param newName the new name. * @param newName the new name.
* @return the workspace item * @return the workspace item
* @throws ItemNotFoundException if the item has not been found. * @throws ItemNotFoundException if the item has not been found.
* @throws InternalErrorException if an internal error occurs. * @throws InternalErrorException if an internal error occurs.
* @throws ItemAlreadyExistException if the user don't have sufficient privileges to perform this operation. * @throws ItemAlreadyExistException if the user don't have sufficient
* privileges to perform this operation.
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws Exception the exception * @throws Exception the exception
*/ */
public WorkspaceItem renameItem(String itemId, String newName) throws ItemNotFoundException, InternalErrorException, ItemAlreadyExistException, InsufficientPrivilegesException, Exception; public WorkspaceItem renameItem(String itemId, String newName) throws ItemNotFoundException, InternalErrorException,
ItemAlreadyExistException, InsufficientPrivilegesException, Exception;
/** /**
* Gets the public link to the latest version of file item. * Gets the public link to the latest version of file item.
@ -287,13 +289,12 @@ public interface Workspace{
* Gets the public link of the file at the input version. * Gets the public link of the file at the input version.
* *
* @param fileItemId the file item id * @param fileItemId the file item id
* @param version the version * @param version the version
* @return the public link for file * @return the public link for file
* @throws Exception the exception * @throws Exception the exception
*/ */
public URL getPublicLinkForFile(String fileItemId, String version) throws Exception; public URL getPublicLinkForFile(String fileItemId, String version) throws Exception;
/** /**
* Gets the list versions for file. * Gets the list versions for file.
* *
@ -303,7 +304,6 @@ public interface Workspace{
*/ */
public List<WorkspaceFileVersion> getListVersionsForFile(String fileItemId) throws Exception; public List<WorkspaceFileVersion> getListVersionsForFile(String fileItemId) throws Exception;
/** /**
* Gets the thumbnail data. * Gets the thumbnail data.
* *
@ -313,7 +313,6 @@ public interface Workspace{
*/ */
public ItemStreamDescriptor getThumbnailData(String itemId) throws Exception; public ItemStreamDescriptor getThumbnailData(String itemId) throws Exception;
/** /**
* Gets the metadata. * Gets the metadata.
* *
@ -322,8 +321,7 @@ public interface Workspace{
* @throws Exception the exception * @throws Exception the exception
*/ */
public Map<String, Object> getMetadata(String itemId) throws Exception; public Map<String, Object> getMetadata(String itemId) throws Exception;
/** /**
* Get the disk usage of a worskpace. * Get the disk usage of a worskpace.
* *
@ -340,7 +338,6 @@ public interface Workspace{
*/ */
public long getTotalItems() throws Exception; public long getTotalItems() throws Exception;
/** /**
* Gets the accounting. * Gets the accounting.
* *
@ -349,8 +346,7 @@ public interface Workspace{
* @throws Exception the exception * @throws Exception the exception
*/ */
public List<AccountEntry> getAccounting(String itemId) throws Exception; public List<AccountEntry> getAccounting(String itemId) throws Exception;
/** /**
* Gets the gcube item properties. * Gets the gcube item properties.
* *
@ -360,135 +356,133 @@ public interface Workspace{
*/ */
public PropertyMap getGcubeItemProperties(String gcubeItemId) throws Exception; public PropertyMap getGcubeItemProperties(String gcubeItemId) throws Exception;
/** /**
* Update metadata. * Update metadata.
* *
* @param itemId the item id * @param itemId the item id
* @param mapObjs the map objs * @param mapObjs the map objs
* @throws Exception the exception * @throws Exception the exception
*/ */
public void updateMetadata(String itemId, Map<String,Object> mapObjs) throws Exception; public void updateMetadata(String itemId, Map<String, Object> mapObjs) throws Exception;
/** /**
* Creates the URL. * Creates the URL.
* *
* @param name the name * @param name the name
* @param description the description * @param description the description
* @param url the url * @param url the url
* @param destinationFolderId the destination folder id * @param destinationFolderId the destination folder id
* @return the URL file item * @return the URL file item
* @throws Exception the exception * @throws Exception the exception
*/ */
public URLItem createURL(String name, String description, String url, String destinationFolderId) throws Exception; public URLItem createURL(String name, String description, String url, String destinationFolderId) throws Exception;
/** /**
* Sets the folder as public. * Sets the folder as public.
* *
* @param folderId the folder id * @param folderId the folder id
* @param bool the bool * @param bool the bool
* @return the new folder status (public or private) * @return the new folder status (public or private)
* @throws Exception the exception * @throws Exception the exception
*/ */
public boolean setFolderAsPublic(String folderId, boolean bool) throws Exception; public boolean setFolderAsPublic(String folderId, boolean bool) throws Exception;
/** /**
* Move items. * Move items.
* *
* @param itemIds the item ids * @param itemIds the item ids
* @param folderDestinationId the folder destination id * @param folderDestinationId the folder destination id
* @return the list * @return the list
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws WrongDestinationException the wrong destination exception * @throws WrongDestinationException the wrong destination exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws ItemAlreadyExistException the item already exist exception * @throws ItemAlreadyExistException the item already exist exception
* @throws Exception the exception * @throws Exception the exception
*/ */
List<WorkspaceItem> moveItems(List<String> itemIds, String folderDestinationId) List<WorkspaceItem> moveItems(List<String> itemIds, String folderDestinationId)
throws ItemNotFoundException, WrongDestinationException, throws ItemNotFoundException, WrongDestinationException, InsufficientPrivilegesException,
InsufficientPrivilegesException, InternalErrorException, InternalErrorException, ItemAlreadyExistException, Exception;
ItemAlreadyExistException, Exception;
/**
/**
* Delete item. * Delete item.
* *
* @param itemId the item id * @param itemId the item id
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws Exception the exception * @throws Exception the exception
*/ */
/* Delete item. /*
* Delete item.
* *
* @param itemId the item id * @param itemId the item id
*
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
*
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
*
* @throws Exception the exception * @throws Exception the exception
*/ */
public void deleteItem(String itemId) throws ItemNotFoundException, InternalErrorException, InsufficientPrivilegesException, Exception; public void deleteItem(String itemId)
throws ItemNotFoundException, InternalErrorException, InsufficientPrivilegesException, Exception;
/** /**
* Move item. * Move item.
* *
* @param itemId the item id * @param itemId the item id
* @param destinationFolderId the destination folder id * @param destinationFolderId the destination folder id
* @return the workspace item * @return the workspace item
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws WrongDestinationException the wrong destination exception * @throws WrongDestinationException the wrong destination exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges
* @throws InternalErrorException the internal error exception * exception
* @throws ItemAlreadyExistException the item already exist exception * @throws InternalErrorException the internal error exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception * @throws ItemAlreadyExistException the item already exist exception
* @throws Exception the exception * @throws WorkspaceFolderNotFoundException the workspace folder not found
* exception
* @throws Exception the exception
*/ */
public WorkspaceItem moveItem(String itemId, String destinationFolderId) throws ItemNotFoundException, WrongDestinationException, InsufficientPrivilegesException, InternalErrorException, ItemAlreadyExistException, WorkspaceFolderNotFoundException, Exception; public WorkspaceItem moveItem(String itemId, String destinationFolderId)
throws ItemNotFoundException, WrongDestinationException, InsufficientPrivilegesException,
InternalErrorException, ItemAlreadyExistException, WorkspaceFolderNotFoundException, Exception;
/** /**
* Copy file. * Copy file.
* *
* @param itemId the item id * @param itemId the item id
* @param folderDestinationId the folder destination id * @param folderDestinationId the folder destination id
* @return the list * @return the list
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws WrongDestinationException the wrong destination exception * @throws WrongDestinationException the wrong destination exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws ItemAlreadyExistException the item already exist exception * @throws ItemAlreadyExistException the item already exist exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws Exception the exception * @throws Exception the exception
*/ */
WorkspaceItem copyFile(String itemId, String folderDestinationId) WorkspaceItem copyFile(String itemId, String folderDestinationId)
throws ItemNotFoundException, WrongDestinationException, throws ItemNotFoundException, WrongDestinationException, InternalErrorException, ItemAlreadyExistException,
InternalErrorException, ItemAlreadyExistException, InsufficientPrivilegesException, Exception;
InsufficientPrivilegesException, Exception;
/** /**
* Copy file items. * Copy file items.
* *
* @param itemIds the item ids * @param itemIds the item ids
* @param folderDestinationId the folder destination id * @param folderDestinationId the folder destination id
* @return the list * @return the list
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws WrongDestinationException the wrong destination exception * @throws WrongDestinationException the wrong destination exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws ItemAlreadyExistException the item already exist exception * @throws ItemAlreadyExistException the item already exist exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws Exception the exception * @throws Exception the exception
*/ */
List<WorkspaceItem> copyFileItems( List<WorkspaceItem> copyFileItems(List<String> itemIds, String folderDestinationId)
List<String> itemIds, String folderDestinationId) throws ItemNotFoundException, WrongDestinationException, InternalErrorException, ItemAlreadyExistException,
throws ItemNotFoundException, WrongDestinationException, InsufficientPrivilegesException, Exception;
InternalErrorException, ItemAlreadyExistException,
InsufficientPrivilegesException, Exception;
/** /**
* Can user write into folder. * Can user write into folder.
* *
@ -497,340 +491,105 @@ public interface Workspace{
* @throws Exception the exception * @throws Exception the exception
*/ */
boolean canUserWriteIntoFolder(String folderId) throws Exception; boolean canUserWriteIntoFolder(String folderId) throws Exception;
/** /**
* Search. * Search.
* *
* @param text the text * @param text the text
* @param folderId the folder id * @param folderId the folder id
* @return the list * @return the list
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws WrongItemTypeException the wrong item type exception * @throws WrongItemTypeException the wrong item type exception
*/ */
List<WorkspaceItem> search(String text, String folderId) List<WorkspaceItem> search(String text, String folderId)
throws InternalErrorException, ItemNotFoundException, WrongItemTypeException; throws InternalErrorException, ItemNotFoundException, WrongItemTypeException;
/** /**
* Gets the item for Explorer. * Gets the item for Explorer.
* *
* @param itemId the item id * @param itemId the item id
* @param withAccounting the with accounting * @param withAccounting the with accounting
* @param withFileDetails the with file details * @param withFileDetails the with file details
* @param withMapProperties the with map properties * @param withMapProperties the with map properties
* @return the item * @return the item
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
WorkspaceItem getItemForExplorer(String itemId, boolean withAccounting, boolean withFileDetails, WorkspaceItem getItemForExplorer(String itemId, boolean withAccounting, boolean withFileDetails,
boolean withMapProperties) throws ItemNotFoundException, InternalErrorException, Exception; boolean withMapProperties) throws ItemNotFoundException, InternalErrorException, Exception;
/** /**
* Gets the parents for explorer by id. This call is the same of {@link WorkspaceStorageHubClientService#getParentsById(String)} * Gets the parents for explorer by id. This call is the same of
* except to getRoot called inside (to check if a parent is root or not). {@link WorkspaceItem#isRoot()} returns always false. * {@link WorkspaceStorageHubClientService#getParentsById(String)} except to
* getRoot called inside (to check if a parent is root or not).
* {@link WorkspaceItem#isRoot()} returns always false.
* *
* @param id the id * @param id the id
* @return the parents for explorer by id * @return the parents for explorer by id
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws Exception the exception * @throws Exception the exception
*/ */
List<? extends WorkspaceItem> getParentsForExplorerById(String id) throws InternalErrorException, Exception; List<? extends WorkspaceItem> getParentsForExplorerById(String id) throws InternalErrorException, Exception;
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* TODO
*
* FOLLOWING METHODS ARE NOT IMPLEMENTED;
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/** /**
* Change an item description. * Download file.
* @param itemId the item to update.
* @param newDescription the new item description.
* @throws ItemNotFoundException if the item has not been found.
* @throws InternalErrorException if an internal error occurs.
*/
public void changeDescription(String itemId, String newDescription) throws ItemNotFoundException, InternalErrorException;
/**
* Search By MimeType.
* *
* @param mimeType the mime type * @param itemId the item id
* @return a list of SearchFolderItem * @param fileName the file name
* @throws InternalErrorException the internal error exception * @param versionName the version name. If is null or empty returns the
* latest version of file
* @param nodeIdsToExclude the node ids to exclude
* @return the item stream descriptor
* @throws Exception the exception
*/ */
public List<WorkspaceItem> searchByMimeType(String mimeType) ItemStreamDescriptor downloadFile(String itemId, String fileName, String versionName, String nodeIdsToExclude)
throws InternalErrorException; throws Exception;
/** /**
* Create a shared folder with a list of users. * Upload archive.
* *
* @param name the name * @param folderId the folder id
* @param description the description * @param is the is
* @param users A list of portal logins * @param extractionFolderName the extraction folder name
* @param destinationFolderId the destination folder id
* @return the shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
public WorkspaceSharedFolder createSharedFolder(String name, String description,
List<String> users, String destinationFolderId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException;
/**
* Shared an exist {@link WorkspaceFolder} with a list of users.
*
* @param users A list of portal logins.
* @param destinationFolderId the destination folder id
* @return the shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
public WorkspaceSharedFolder shareFolder(List<String> users, String destinationFolderId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException;
/**
* Shared an exist {@link WorkspaceFolder} with a list of users.
*
* @param users A list of portal logins.
* @param itemId the item id
* @return the shared folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
public WorkspaceSharedFolder share(List<String> users, String itemId)
throws InternalErrorException, InsufficientPrivilegesException,
ItemAlreadyExistException, WrongDestinationException,
ItemNotFoundException, WorkspaceFolderNotFoundException;
/**
* Create a GCubeItem.
*
* @param name the name
* @param description the description
* @param scopes the scopes
* @param creator the creator
* @param itemType the item type
* @param properties the properties
* @param destinationFolderId the destination folder id
* @return a GCubeItem
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
* @throws InternalErrorException the internal error exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
*/
public WorkspaceItem createGcubeItem(String name, String description,
List<String> scopes, String creator, String itemType, Map<String, String> properties,
String destinationFolderId) throws InsufficientPrivilegesException,
WorkspaceFolderNotFoundException, InternalErrorException,
ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException;
/**
* Unshare a shared item.
*
* @param itemId the item id
* @return the workspace item * @return the workspace item
* @throws InternalErrorException the internal error exception * @throws Exception the exception
* @throws ItemNotFoundException the item not found exception
*/ */
public WorkspaceItem unshare(String itemId) throws InternalErrorException, ItemNotFoundException; WorkspaceItem uploadArchive(String folderId, InputStream is, String extractionFolderName) throws Exception;
/** /**
* Get MySpecialFolders. * Download folder.
* *
* @return my special folders * @param folderId the folder id
* @throws InternalErrorException the internal error exception * @param folderName the folder name
* @throws ItemNotFoundException the item not found exception * @param nodeIdsToExclude the node ids to exclude
* @return the item stream descriptor
* @throws Exception the exception
*/ */
public WorkspaceFolder getMySpecialFolders() throws InternalErrorException, ItemNotFoundException; ItemStreamDescriptor downloadFolder(String folderId, String folderName, String nodeIdsToExclude) throws Exception;
/**
* Search By Properties.
*
* @param properties the properties
* @return a list of WorkspaceItem
* @throws InternalErrorException the internal error exception
*/
public List<WorkspaceItem> searchByProperties(List<String> properties)
throws InternalErrorException;
/** /**
* Removes the items. * Removes the items.
* *
* @param id the id * @param id the id
* @return the map of errors (id,error) * @return the map of errors (id,error)
* @throws ItemNotFoundException the item not found exception * @throws ItemNotFoundException the item not found exception
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception * @throws InsufficientPrivilegesException the insufficient privileges exception
*/ */
public Map<String, String> removeItems(String... id) throws ItemNotFoundException, public Map<String, String> removeItems(String... id)
InternalErrorException, InsufficientPrivilegesException; throws ItemNotFoundException, InternalErrorException, InsufficientPrivilegesException;
/** /**
* Create a VRE folder. * Update description for item.
*
* @param scope the scope
* @param description the description
* @param displayName the display name
* @param privilege the privilege
* @return a new VRE folder
* @throws InternalErrorException the internal error exception
* @throws InsufficientPrivilegesException the insufficient privileges exception
* @throws ItemAlreadyExistException the item already exist exception
* @throws WrongDestinationException the wrong destination exception
* @throws ItemNotFoundException the item not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
public WorkspaceVREFolder createVREFolder(String scope, String description,
String displayName, ACLType privilege) throws InternalErrorException,
InsufficientPrivilegesException, ItemAlreadyExistException,
WrongDestinationException, ItemNotFoundException,
WorkspaceFolderNotFoundException;
/**
* Get public folders.
*
* @return a list of public folder
* @throws InternalErrorException the internal error exception
*/
List<WorkspaceItem> getPublicFolders() throws InternalErrorException;
/**
* Upload archive.
*
* @param folderId the folder id
* @param is the is
* @param extractionFolderName the extraction folder name
* @return the workspace item
* @throws Exception the exception
*/
WorkspaceItem uploadArchive(
String folderId, InputStream is, String extractionFolderName)
throws Exception;
/**
* Download file.
* *
* @param itemId the item id * @param itemId the item id
* @param fileName the file name * @param newDescription the new description
* @param versionName the version name. If is null or empty returns the latest version of file * @return the description updated read by SHUB
* @param nodeIdsToExclude the node ids to exclude
* @return the item stream descriptor
* @throws Exception the exception * @throws Exception the exception
*/ */
ItemStreamDescriptor downloadFile(String itemId, String fileName, String versionName, String nodeIdsToExclude) throws Exception; public String updateDescriptionForItem(String itemId, String newDescription) throws Exception;
/**
* Download folder.
*
* @param folderId the folder id
* @param folderName the folder name
* @param nodeIdsToExclude the node ids to exclude
* @return the item stream descriptor
* @throws Exception the exception
*/
ItemStreamDescriptor downloadFolder(
String folderId, String folderName, String nodeIdsToExclude)
throws Exception;
} }