package org.gcube.portlets.user.workspace.client.rpc; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.gcube.portlets.user.workspace.client.interfaces.GXTCategorySmartFolder; import org.gcube.portlets.user.workspace.client.model.FileDetailsModel; import org.gcube.portlets.user.workspace.client.model.FileGridModel; import org.gcube.portlets.user.workspace.client.model.FileModel; import org.gcube.portlets.user.workspace.client.model.FileTrashedModel; import org.gcube.portlets.user.workspace.client.model.FileVersionModel; import org.gcube.portlets.user.workspace.client.model.FolderModel; import org.gcube.portlets.user.workspace.client.model.GcubeVRE; import org.gcube.portlets.user.workspace.client.model.InfoContactModel; import org.gcube.portlets.user.workspace.client.model.ScopeModel; import org.gcube.portlets.user.workspace.client.model.SmartFolderModel; import org.gcube.portlets.user.workspace.client.model.SubTree; import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; import org.gcube.portlets.user.workspace.shared.AllowAccess; import org.gcube.portlets.user.workspace.shared.ExtendedWorkspaceACL; import org.gcube.portlets.user.workspace.shared.GarbageItem; import org.gcube.portlets.user.workspace.shared.PublicLink; import org.gcube.portlets.user.workspace.shared.ReportAssignmentACL; import org.gcube.portlets.user.workspace.shared.SessionExpiredException; import org.gcube.portlets.user.workspace.shared.TrashContent; import org.gcube.portlets.user.workspace.shared.TrashOperationContent; import org.gcube.portlets.user.workspace.shared.UserBean; import org.gcube.portlets.user.workspace.shared.WorkspaceACL; import org.gcube.portlets.user.workspace.shared.WorkspaceTrashOperation; import org.gcube.portlets.user.workspace.shared.WorkspaceUserQuote; import org.gcube.portlets.user.workspace.shared.WorkspaceVersioningOperation; import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; /** * The Interface GWTWorkspaceService. * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * Jul 14, 2015 */ @RemoteServiceRelativePath("WorkspaceService") public interface GWTWorkspaceService extends RemoteService{ /** * Gets the servlet context path. * * @param protocol the protocol * @return the servlet context path */ String getServletContextPath(String protocol); /** * Gets the user workspace size. * * @return the user workspace size * @throws Exception the exception */ String getUserWorkspaceSize() throws Exception; /** * Gets the root for tree. * * @return the root for tree * @throws Exception the exception */ public FolderModel getRootForTree() throws Exception; /** * Gets the root for tree. * * @param scopeId the scope id * @return the root for tree * @throws Exception the exception */ public FolderModel getRootForTree(String scopeId) throws Exception; /** * Gets the all scope. * * @return the all scope * @throws Exception the exception */ public List getAllScope() throws Exception; /** * Gets the folder children. * * @param folder the folder * @return the folder children * @throws Exception the exception * @throws SessionExpiredException the session expired exception */ public List getFolderChildren(FolderModel folder) throws Exception, SessionExpiredException; /** * Gets the folder children for file grid. * * @param folder the folder * @return the folder children for file grid * @throws Exception the exception * @throws SessionExpiredException the session expired exception */ public List getFolderChildrenForFileGrid(FileModel folder) throws Exception, SessionExpiredException; /** * Gets the details file. * * @param item the item * @return the details file * @throws Exception the exception */ public FileDetailsModel getDetailsFile(FileModel item) throws Exception; /** * Creates the folder. * * @param nameFolder the name folder * @param description the description * @param parent the parent * @return the folder model * @throws Exception the exception */ public FolderModel createFolder(String nameFolder, String description, FileModel parent) throws Exception; /** * Gets the children sub tree to root by identifier. * * @param itemIdentifier the item identifier * @return the children sub tree to root by identifier * @throws Exception the exception */ public ArrayList getChildrenSubTreeToRootByIdentifier(String itemIdentifier) throws Exception; /** * Gets the smart folder results by category. * * @param category the category * @return the smart folder results by category * @throws Exception the exception */ List getSmartFolderResultsByCategory( GXTCategorySmartFolder category) throws Exception; /** * Creates the smart folder. * * @param name the name * @param description the description * @param query the query * @param parentId the parent id * @return the smart folder model * @throws Exception the exception */ SmartFolderModel createSmartFolder(String name, String description, String query, String parentId) throws Exception; /** * Gets the smart folder results by id. * * @param folderId the folder id * @return the smart folder results by id * @throws Exception the exception */ public List getSmartFolderResultsById(String folderId) throws Exception; /** * Gets the all smart folders. * * @return the all smart folders * @throws Exception the exception */ public List getAllSmartFolders() throws Exception; /** * Gets the image by id. * * @param identifier the identifier * @param isInteralImage the is interal image * @param fullDetails the full details * @return the image by id * @throws Exception the exception */ public GWTWorkspaceItem getImageById(String identifier, boolean isInteralImage, boolean fullDetails) throws Exception; /** * Gets the url by id. * * @param identifier the identifier * @param isInternalUrl the is internal url * @param fullDetails the full details * @return the url by id * @throws Exception the exception */ public GWTWorkspaceItem getUrlById(String identifier, boolean isInternalUrl, boolean fullDetails) throws Exception; /** * Creates the external url. * * @param parentFileModel the parent file model * @param name the name * @param description the description * @param url the url * @return the file model * @throws Exception the exception */ public FileModel createExternalUrl(FileModel parentFileModel, String name, String description, String url) throws Exception; /** * Sets the value in session. * * @param name the name * @param value the value * @throws Exception the exception */ public void setValueInSession(String name, String value) throws Exception; /** * Gets the items by search name. * * @param text the text * @param folderId the folder id * @return the items by search name * @throws Exception the exception */ List getItemsBySearchName(String text, String folderId) throws Exception; /** * Move item. * * @param itemId the item id * @param destinationId the destination id * @return the boolean * @throws Exception the exception */ public Boolean moveItem(String itemId, String destinationId) throws Exception; /** * Removes the item. * * @param itemId the item id * @return the boolean * @throws Exception the exception */ public Boolean removeItem(String itemId) throws Exception; /** * Rename item. * * @param itemId the item id * @param newName the new name * @param oldName the old name * @return the boolean * @throws Exception the exception */ public Boolean renameItem(String itemId, String newName, String oldName) throws Exception; /** * Removes the smart folder. * * @param itemId the item id * @param name the name * @return the boolean * @throws Exception the exception */ public Boolean removeSmartFolder(String itemId, String name) throws Exception; /** * Gets the all contacts. * * @return the all contacts * @throws Exception the exception */ public List getAllContacts() throws Exception; /** * Gets the url web dav. * * @param itemId the item id * @return the url web dav * @throws Exception the exception */ public String getUrlWebDav(String itemId) throws Exception; /** * Send to by id. * * @param listContactsId the list contacts id * @param listAttachmentsId the list attachments id * @param subject the subject * @param text the text * @return true, if successful * @throws Exception the exception */ public boolean sendToById(List listContactsId, List listAttachmentsId, String subject, String text) throws Exception; /** * Copy item. * * @param itemId the item id * @param destinationFolderId the destination folder id * @return true, if successful * @throws Exception the exception */ public boolean copyItem(String itemId, String destinationFolderId) throws Exception; /** * Gets the time series by id. * * @param identifier the identifier * @return the time series by id * @throws Exception the exception */ public GWTWorkspaceItem getTimeSeriesById(String identifier) throws Exception; /** * Share folder. * * @param folder the folder * @param listContacts the list contacts * @param isNewFolder the is new folder * @param acl the acl * @return true, if successful * @throws Exception the exception */ boolean shareFolder(FileModel folder, List listContacts, boolean isNewFolder, WorkspaceACL acl) throws Exception; /** * Gets the list user shared by folder shared id. * * @param itemId the item id * @return the list user shared by folder shared id * @throws Exception the exception */ public List getListUserSharedByFolderSharedId(String itemId) throws Exception; /** * Un shared folder by folder shared id. * * @param folderSharedId the folder shared id * @return true, if successful * @throws Exception the exception */ public boolean unSharedFolderByFolderSharedId(String folderSharedId) throws Exception; /** * Gets the list parents by item identifier. * * @param itemIdentifier the item identifier * @param includeItemAsParent the include item as parent * @return the list parents by item identifier * @throws Exception the exception */ public List getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception; /** * Gets the URL from application profile. * * @param oid the oid * @return the URL from application profile * @throws Exception the exception */ public String getURLFromApplicationProfile(String oid) throws Exception; /** * Gets the owner by item id. * * @param itemId the item id * @return the owner by item id * @throws Exception the exception */ public InfoContactModel getOwnerByItemId(String itemId) throws Exception; /** * Item exists in workpace folder. * * @param parentId the parent id * @param itemName the item name * @return the string * @throws Exception the exception */ public String itemExistsInWorkpaceFolder(String parentId, String itemName) throws Exception; /** * Gets the item creation date by id. * * @param itemId the item id * @return the item creation date by id * @throws Exception the exception */ public Date getItemCreationDateById(String itemId) throws Exception; /** * Load size by item id. * * @param itemId the item id * @return the long * @throws Exception the exception */ public Long loadSizeByItemId(String itemId) throws Exception; /** * Load last modification date by id. * * @param itemId the item id * @return the date * @throws Exception the exception */ public Date loadLastModificationDateById(String itemId) throws Exception; /** * Gets the parent by item id. * * @param identifier the identifier * @return the parent by item id * @throws Exception the exception */ public FileModel getParentByItemId(String identifier) throws Exception; /** * Gets the accounting readers. * * @param identifier the identifier * @return the accounting readers * @throws Exception the exception */ public List getAccountingReaders(String identifier) throws Exception; /** * Gets the accounting history. * * @param identifier the identifier * @return the accounting history * @throws Exception the exception */ public List getAccountingHistory(String identifier) throws Exception; /** * Gets the item for file grid. * * @param itemId the item id * @return the item for file grid * @throws Exception the exception */ public FileGridModel getItemForFileGrid(String itemId) throws Exception; /** * Gets the folder children for file grid by id. * * @param folderId the folder id * @return the folder children for file grid by id * @throws Exception the exception * @throws SessionExpiredException the session expired exception */ List getFolderChildrenForFileGridById(String folderId) throws Exception, SessionExpiredException; /** * Gets the short url. * * @param longUrl the long url * @return the short url * @throws Exception the exception */ String getShortUrl(String longUrl) throws Exception; /** * Gets the public link for folder item id. * * @param itemId the item id * @param shortenUrl the shorten url * @return the public link for folder item id * @throws Exception the exception */ PublicLink getPublicLinkForFolderItemId(String itemId, boolean shortenUrl) throws Exception; /** * Checks if is session expired. * * @return true, if is session expired * @throws Exception the exception */ boolean isSessionExpired() throws Exception; /** * Delete list items for ids. * * @param ids the ids * @return the list * @throws Exception the exception */ List deleteListItemsForIds(List ids) throws Exception; /** * Copy items. * * @param idsItem the ids item * @param destinationFolderId the destination folder id * @return true, if successful * @throws Exception the exception */ boolean copyItems(List idsItem, String destinationFolderId) throws Exception; /** * Move items. * * @param ids the ids * @param destinationId the destination id * @return the boolean * @throws Exception the exception */ Boolean moveItems(List ids, String destinationId) throws Exception; /** * Gets the AC ls. * * @return the AC ls * @throws Exception the exception */ List getACLs() throws Exception; /** * Sets the ac ls. * * @param folderId the folder id * @param listLogins the list logins * @param aclType the acl type * @throws Exception the exception */ void setACLs(String folderId, List listLogins, String aclType) throws Exception; /** * Gets the my login. * * @param currentPortletUrl the current portlet url * @return the my login */ UserBean getMyLogin(String currentPortletUrl); /** * Update acl for vr eby group name. * * @param folderId the folder id * @param aclType the acl type * @throws Exception the exception */ void updateACLForVREbyGroupName(String folderId, String aclType) throws Exception; /** * Gets the user acl for folder id. * * @param folderId the folder id * @return the user acl for folder id * @throws Exception the exception */ List getUserACLForFolderId(String folderId) throws Exception; /** * Gets the trash content. * * @return the trash content * @throws Exception the exception */ List getTrashContent() throws Exception; /** * Gets the AC ls description for workspace item by id. * * @param workspaceItemId the workspace item id * @return the AC ls description for workspace item by id * @throws Exception the exception */ String getACLsDescriptionForWorkspaceItemById(String workspaceItemId) throws Exception; /** * Gets the users manager to shared folder. * * @param folderId the folder id * @return the users manager to shared folder * @throws Exception the exception */ List getUsersManagerToSharedFolder(String folderId) throws Exception; /** * Update trash content. * * @param operation the operation * @return the trash content * @throws Exception the exception */ TrashContent updateTrashContent(WorkspaceTrashOperation operation) throws Exception; /** * Execute operation on trash. * * @param listTrashItemIds the list trash item ids * @param operation the operation * @return the trash operation content * @throws Exception the exception */ TrashOperationContent executeOperationOnTrash(List listTrashItemIds, WorkspaceTrashOperation operation) throws Exception; /** * Adds the administrators by folder id. * * @param folderId the folder id * @param listContactIds the list contact ids * @return true, if successful * @throws Exception the exception */ boolean addAdministratorsByFolderId(String folderId, List listContactIds) throws Exception; /** * Gets the administrators by folder id. * * @param identifier the identifier * @return the administrators by folder id * @throws Exception the exception */ List getAdministratorsByFolderId(String identifier) throws Exception; /** * Gets the ACL by shared folder id. * * @param identifier the identifier * @return the ACL by shared folder id * @throws Exception the exception */ WorkspaceACL getACLBySharedFolderId(String identifier) throws Exception; /** * Gets the user workspace total items. * * @return the user workspace total items * @throws Exception the exception */ long getUserWorkspaceTotalItems() throws Exception; /** * Gets the user workspace quote. * * @return the user workspace quote * @throws Exception the exception */ WorkspaceUserQuote getUserWorkspaceQuote() throws Exception; /** * Gets the item description by id. * * @param identifier the identifier * @return the item description by id * @throws Exception the exception */ String getItemDescriptionById(String identifier) throws Exception; /** * Validate acl to user. * * @param folderId the folder id * @param listLogins the list logins * @param aclType the acl type * @return the report assignment acl * @throws Exception the exception */ ReportAssignmentACL validateACLToUser(String folderId, List listLogins, String aclType) throws Exception; /** * Load gcube item properties. * * @param itemId the item id * @return the map * @throws Exception the exception */ Map loadGcubeItemProperties(String itemId) throws Exception; /** * Gets the HTML gcube item properties. * * @param itemId the item id * @return the HTML gcube item properties * @throws Exception the exception */ String getHTMLGcubeItemProperties(String itemId) throws Exception; /** * Sets the gcube item properties. * * @param itemId the item id * @param properties the properties * @throws Exception the exception */ void setGcubeItemProperties(String itemId, Map properties) throws Exception; /** * Gets the item for file tree. * * @param itemId the item id * @return the item for file tree * @throws Exception the exception */ FileModel getItemForFileTree(String itemId) throws Exception; /** * Gets the my first name. * * @return the my first name */ String getMyFirstName(); /** * Mark folder as public for folder item id. * * @param itemId the item id * @param b the b * @return the public link * @throws SessionExpiredException the session expired exception * @throws Exception the exception */ PublicLink markFolderAsPublicForFolderItemId(String itemId, boolean b) throws SessionExpiredException, Exception; /** * Access to folder link. * * @param itemId the item id * @return the allow access * @throws SessionExpiredException the session expired exception * @throws Exception the exception */ AllowAccess accessToFolderLink(String itemId) throws SessionExpiredException, Exception; /** * Perform operation on versioned file. * * @param fileId the file id * @param olderVersionIDs the older version i ds * @param operation the operation * @return the list * @throws Exception the exception */ List performOperationOnVersionedFile( String fileId, List olderVersionIDs, WorkspaceVersioningOperation operation) throws Exception; /** * Gets the version history. * * @param fileIdentifier the file identifier * @return the version history * @throws Exception the exception */ List getVersionHistory(String fileIdentifier) throws Exception; /** * Gets the images for folder. * * @param folderId the folder id * @param currentImageId the current image id * @return the images for folder * @throws Exception the exception */ List getImagesForFolder(String folderId, String currentImageId) throws Exception; /** * Gets the list of vr es for logged user. * * @return the list of vr es for logged user * @throws Exception the exception */ List getListOfVREsForLoggedUser() throws Exception; }