diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/AsyncTreePanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/AsyncTreePanel.java index 6134569..149151b 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/AsyncTreePanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/AsyncTreePanel.java @@ -846,7 +846,7 @@ public class AsyncTreePanel extends LayoutContainer { addChildrenToFolder(folder, result); GWT.log("End RPC - getFolderChildren"); - //AppControllerExplorer.getEventBus().fireEvent(new CheckItemLockedBySyncEvent(folder)); + AppControllerExplorer.getEventBus().fireEvent(new CheckItemLockedBySyncEvent(folder)); } }); diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index 7b488ff..646790e 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -75,6 +75,7 @@ import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingEntryTyp import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField; import org.gcube.portlets.widgets.workspacesharingwidget.server.notifications.NotificationsProducer; import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; +import org.gcube.portlets.widgets.wsthreddssync.server.ThreddsWorkspaceSyncServiceImpl; import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.queries.api.SimpleQuery; import org.gcube.usecases.ws.thredds.faults.WorkspaceNotSynchedException; @@ -92,19 +93,18 @@ import org.slf4j.LoggerFactory; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.liferay.portal.service.UserLocalServiceUtil; - // TODO: Auto-generated Javadoc /** * The Class GWTWorkspaceServiceImpl. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * - * Aug 1, 2019 + * Aug 1, 2019 */ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWTWorkspaceService { public static final String JCR_WILDCARD_TO_SEARCH = "%"; - public static final String CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH = "\""; //is double quote + public static final String CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH = "\""; // is double quote protected static final String IDENTIFIER_IS_NULL = "Identifier is null"; protected static final String RETRIEVING_ITEM_EITHER_ITEM_DOESN_T_EXIST = " retrieving item. Either the item doesn't exist anymore or you do not have the permission to access it"; private static final long serialVersionUID = 2828885661214875589L; @@ -149,7 +149,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT protected UrlShortener getUrlShortener() { return WsUtil.getUrlShortener(this.getThreadLocalRequest()); } - + /** * Gets the property special folder reader. * @@ -172,7 +172,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT + ConstantsExplorer.SPECIALFOLDERNAMEPROPERTIESFILE; } - /** * Gets the name for special folder. * @@ -195,8 +194,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the servlet context path. * - * @param protocol - * the protocol + * @param protocol the protocol * @return the servlet context path */ @Override @@ -225,7 +223,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT return url.toString(); } - /** * Checks if is item under sync. * @@ -267,7 +264,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception("Error on checking item " + itemId + " is under sync"); } } - + /* * (non-Javadoc) * @@ -277,13 +274,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the my login. * - * @param currentPortletUrl - * the current portlet url + * @param currentPortletUrl the current portlet url * @return the my login */ @Override public UserBean getMyLogin(String currentPortletUrl) { - + PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest()); String username = info.getUsername(); String email = info.getUserEmail(); @@ -313,7 +309,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT return us; } - /** * Gets the CLARIN switch board endpoint. * @@ -341,7 +336,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT ScopeProvider.instance.set(currContext); return res.profile().runtime().hostedOn(); } - + /* * (non-Javadoc) * @@ -376,8 +371,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } return firstName; } - - + /* * (non-Javadoc) * @@ -388,8 +382,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Checks if is session expired. * * @return true, if is session expired - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public boolean isSessionExpired() throws Exception { @@ -411,13 +404,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - /** * Gets the workspace from storage hub. * * @return the workspace from storage hub - * @throws Exception - * the exception + * @throws Exception the exception */ protected org.gcube.common.storagehubwrapper.server.tohl.Workspace getWorkspaceFromStorageHub() throws Exception { GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest()); @@ -429,8 +420,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the storage hub to workpace converter. * * @return the storage hub to workpace converter - * @throws Exception - * the exception + * @throws Exception the exception */ protected StorageHubToWorkpaceConverter getStorageHubToWorkpaceConverter() throws Exception { GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest()); @@ -465,8 +455,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the root for tree. * * @return the root for tree - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public FolderModel getRootForTree() throws Exception { @@ -499,19 +488,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Delete item. * - * @param itemId - * the item id + * @param itemId the item id * @return the boolean - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public Boolean deleteItem(String itemId) throws Exception { org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem theItem = null; try { - - workspaceLogger.error("called deleteItem: "+itemId); + + workspaceLogger.error("called deleteItem: " + itemId); if (itemId == null) throw new Exception(IDENTIFIER_IS_NULL); @@ -531,11 +518,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT // HERE REMOVING THE ITEM workspaceLogger.info("Calling storageHub to delete item with id: " + itemId); workspaceSH.deleteItem(itemId); - + NotificationsProducerToStorageHub np = getNotificationProducerToStorageHub(); if (sourceFolderSharedId != null) - NotificationStorageHubUtil.checkSendNotifyRemovedItemFromShare(this.getThreadLocalRequest(), theItem.isShared(), - itemName, itemId, sourceFolderSharedId, workspaceSH, np); + NotificationStorageHubUtil.checkSendNotifyRemovedItemFromShare(this.getThreadLocalRequest(), + theItem.isShared(), itemName, itemId, sourceFolderSharedId, workspaceSH, np); return Boolean.TRUE; @@ -560,15 +547,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } catch (Exception e) { workspaceLogger.error("Removing item error:", e); StringBuilder error = new StringBuilder(); - if(theItem!=null && theItem.isShared()) { - if(theItem.isFolder()) { - error.append("Deleting shared folders is not supported. Please unshare it if your intent is to no longer share its content with your coworkers."); - }else { + if (theItem != null && theItem.isShared()) { + if (theItem.isFolder()) { + error.append( + "Deleting shared folders is not supported. Please unshare it if your intent is to no longer share its content with your coworkers."); + } else { error.append("Ops! This operation is not allowed, we're working hard to make this possible soon."); } throw new SHUBOperationNotAllowedException(error.toString()); - }else { - error.append("Ops an error occurred deleting the item! Either you have not the permission to delete it or a server error occurred. Please, refresh and try again"); + } else { + error.append( + "Ops an error occurred deleting the item! Either you have not the permission to delete it or a server error occurred. Please, refresh and try again"); throw new Exception(error.toString()); } } @@ -585,17 +574,14 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the folder children. * - * @param folder - * the folder + * @param folder the folder * @return the folder children - * @throws Exception - * the exception - * @throws SessionExpiredException - * the session expired exception + * @throws Exception the exception + * @throws SessionExpiredException the session expired exception */ @Override public List getFolderChildren(FolderModel folder) throws Exception, SessionExpiredException { - + org.gcube.common.storagehubwrapper.server.tohl.Workspace shWorkspace; if (isSessionExpired()) @@ -606,7 +592,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if (folder == null) throw new Exception("Folder is null"); - workspaceLogger.info("Get FolderChildren called for folder: "+folder.getIdentifier()); + workspaceLogger.info("Get FolderChildren called for folder: " + folder.getIdentifier()); shWorkspace = getWorkspaceFromStorageHub(); // REMEMBER wsItem.isRoot() is always false; @@ -616,8 +602,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT .getFilteredChildren(folder.getIdentifier(), org.gcube.common.storagehub.model.items.FolderItem.class); - workspaceLogger.info("The children are: "+children.size()); - + workspaceLogger.info("The children are: " + children.size()); + for (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem workspaceItem : children) { workspaceLogger .trace("The ITEM: " + workspaceItem.getName() + ", is shared: " + workspaceItem.isShared() @@ -641,8 +627,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } boolean isRoot = WsUtil.isRootFolder(folder, converter); - - workspaceLogger.info("Is the workspace folder "+folder.getName() + "with id: "+folder.getIdentifier()+" the root? "+isRoot); + + workspaceLogger.info("Is the workspace folder " + folder.getName() + "with id: " + folder.getIdentifier() + + " the root? " + isRoot); // ADDING VRE FOLDER? if (isRoot) { @@ -705,19 +692,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the folder children for file grid. * - * @param folder - * the folder + * @param folder the folder * @return the folder children for file grid - * @throws Exception - * the exception - * @throws SessionExpiredException - * the session expired exceptionworkspaceLogger.info("The children are: "+children.size()); + * @throws Exception the exception + * @throws SessionExpiredException the session expired + * exceptionworkspaceLogger.info("The children + * are: "+children.size()); */ @Override public List getFolderChildrenForFileGrid(FileModel folder) throws Exception, SessionExpiredException { - - + if (isSessionExpired()) throw new SessionExpiredException(); @@ -725,13 +710,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if (folder == null) throw new Exception("Folder is null"); - - workspaceLogger.info("Get FolderChildrenForFileGrid called for folder: "+folder.getIdentifier()); + + workspaceLogger.info("Get FolderChildrenForFileGrid called for folder: " + folder.getIdentifier()); org.gcube.common.storagehubwrapper.server.tohl.Workspace shWorkspace = getWorkspaceFromStorageHub(); List children = shWorkspace .getChildren(folder.getIdentifier()); - workspaceLogger.info("The children are: "+children.size()); + workspaceLogger.info("The children are: " + children.size()); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); List listFileGridModels = new ArrayList(children.size()); // boolean isParentShared = folder.isShared(); @@ -750,7 +735,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { String vreFolderId = shWorkspace.getVREFoldersId(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem baseVREFolder = shWorkspace.getItem(vreFolderId); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem baseVREFolder = shWorkspace + .getItem(vreFolderId); FileGridModel specialFolderModel = converter.toGridFileModel(baseVREFolder, folder); specialFolderModel.setSpecialFolder(true); @@ -790,13 +776,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the folder children for file grid by id. * - * @param folderId - * the folder 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 + * @throws Exception the exception + * @throws SessionExpiredException the session expired exception */ @Override public List getFolderChildrenForFileGridById(String folderId) @@ -869,8 +852,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the trash content. * * @return the trash content - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getTrashContent() throws Exception { @@ -903,11 +885,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Update trash content. * - * @param operation - * the operation + * @param operation the operation * @return the trash content - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public TrashContent updateTrashContent(WorkspaceTrashOperation operation) throws Exception { @@ -940,13 +920,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - /** * Execute operation on trash. * - * @param listTrashItemIds the list trash item ids + * @param listTrashItemIds the list trash item ids * @param destinationFolderId the destination folder id - * @param operation the operation + * @param operation the operation * @return the trash operation content * @throws Exception the exception */ @@ -977,27 +956,29 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem trashedItem = null; for (String trashItemId : listTrashItemIds) { try { - trashedItem = workspace - .getItem(trashItemId); + trashedItem = workspace.getItem(trashItemId); if (trashedItem != null && trashedItem.isTrashed()) { workspace.deleteItem(trashedItem.getId()); listUpdatedTrashIds.add(trashItemId); } } catch (Exception e) { - - workspaceLogger.warn("Error occurred on "+WorkspaceTrashOperation.DELETE_PERMANENTLY+" the item : " + trashItemId, e); + + workspaceLogger.warn("Error occurred on " + WorkspaceTrashOperation.DELETE_PERMANENTLY + + " the item : " + trashItemId, e); FileTrashedModel fakeFile = new FileTrashedModel(); fakeFile.setIdentifier(trashItemId); - String itemName = trashedItem!=null?trashedItem.getName():"item"; + String itemName = trashedItem != null ? trashedItem.getName() : "item"; fakeFile.setName(itemName); - String itemRefMsg = trashedItem.isFolder()?"folder":"file"; - itemRefMsg+=" '"+itemName+"'"; - String errorMsg = "Error occurred on deleting permanently the "+itemRefMsg; - if(e instanceof UserNotAuthorizedException) { - errorMsg = String.format("Insufficent privileges for you to delete permanently the %s", itemRefMsg); + String itemRefMsg = trashedItem.isFolder() ? "folder" : "file"; + itemRefMsg += " '" + itemName + "'"; + String errorMsg = "Error occurred on deleting permanently the " + itemRefMsg; + if (e instanceof UserNotAuthorizedException) { + errorMsg = String.format("Insufficent privileges for you to delete permanently the %s", + itemRefMsg); } - TrashOperationError error = new TrashOperationError(fakeFile,WorkspaceTrashOperation.DELETE_PERMANENTLY,errorMsg); + TrashOperationError error = new TrashOperationError(fakeFile, + WorkspaceTrashOperation.DELETE_PERMANENTLY, errorMsg); listOperationError.add(error); } } @@ -1005,8 +986,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } case RESTORE: { - - if(destinationFolderId==null) + + if (destinationFolderId == null) throw new Exception("Wrong call, the destionFolderId is null"); org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem trashedItem = null; @@ -1015,26 +996,32 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT trashedItem = workspace.getItem(trashItemId); if (trashedItem != null && trashedItem.isTrashed()) { String destFolderId = destinationFolderId; - workspaceLogger.info("Trying to restore the item id: "+trashedItem.getId()+", in the folder id: "+destFolderId); + workspaceLogger.info("Trying to restore the item id: " + trashedItem.getId() + + ", in the folder id: " + destFolderId); workspace.restoreThrashItem(trashedItem.getId(), destFolderId); listUpdatedTrashIds.add(trashItemId); - //restored = true; + // restored = true; } } catch (Exception e) { - - workspaceLogger.warn("Error occurred on "+WorkspaceTrashOperation.RESTORE+" the item : " + trashItemId, e); + + workspaceLogger.warn( + "Error occurred on " + WorkspaceTrashOperation.RESTORE + " the item : " + trashItemId, + e); FileTrashedModel fakeFile = new FileTrashedModel(); fakeFile.setIdentifier(trashItemId); - String itemName = trashedItem!=null?trashedItem.getName():trashItemId; + String itemName = trashedItem != null ? trashedItem.getName() : trashItemId; fakeFile.setName(itemName); - String itemRefMsg = trashedItem.isFolder()?"folder":"file"; - itemRefMsg+=" '"+itemName+"'"; - String errorMsg = "Error occurred on restoring the "+itemRefMsg+". "+e.getMessage(); - if(e instanceof UserNotAuthorizedException) { - errorMsg = String.format("Insufficent privileges for you to restore the %s in the selected folder", itemRefMsg); + String itemRefMsg = trashedItem.isFolder() ? "folder" : "file"; + itemRefMsg += " '" + itemName + "'"; + String errorMsg = "Error occurred on restoring the " + itemRefMsg + ". " + e.getMessage(); + if (e instanceof UserNotAuthorizedException) { + errorMsg = String.format( + "Insufficent privileges for you to restore the %s in the selected folder", + itemRefMsg); } - TrashOperationError error = new TrashOperationError(fakeFile,WorkspaceTrashOperation.RESTORE,errorMsg); + TrashOperationError error = new TrashOperationError(fakeFile, WorkspaceTrashOperation.RESTORE, + errorMsg); listOperationError.add(error); } } @@ -1069,11 +1056,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Delete list items for ids. * - * @param ids - * the ids + * @param ids the ids * @return the list - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List deleteListItemsForIds(List ids) throws Exception { @@ -1083,8 +1068,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if (ids == null) throw new Exception("List identifiers is null"); - workspaceLogger.debug("called deleteListItemsForIds with: " + ids.size() +" id/s"); - + workspaceLogger.debug("called deleteListItemsForIds with: " + ids.size() + " id/s"); + // Workspace workspace = getWorkspace(); org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); String[] items = new String[ids.size()]; @@ -1172,15 +1157,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Creates the folder. * - * @param nameFolder - * the name folder - * @param description - * the description - * @param parent - * the parent + * @param nameFolder the name folder + * @param description the description + * @param parent the parent * @return the folder model - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public FolderModel createFolder(String nameFolder, String description, FileModel parent) throws Exception { @@ -1191,8 +1172,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { boolean isParentNull = parent == null; - workspaceLogger.debug("Create folder: " + nameFolder + " parent is null? "+isParentNull); - + workspaceLogger.debug("Create folder: " + nameFolder + " parent is null? " + isParentNull); + if (nameFolder == null) throw new Exception("Folder name is null"); @@ -1239,13 +1220,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Move items. * - * @param ids - * the ids - * @param destinationId - * the destination id + * @param ids the ids + * @param destinationId the destination id * @return the boolean - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public WorkspaceOperationResult moveItems(List ids, String destinationId) throws Exception { @@ -1369,15 +1347,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Rename item. * - * @param itemId - * the item id - * @param newName - * the new name - * @param previousName - * the previous name + * @param itemId the item id + * @param newName the new name + * @param previousName the previous name * @return the boolean - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public Boolean renameItem(String itemId, String newName, String previousName) throws Exception { @@ -1397,10 +1371,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspaceLogger.debug("Renaming item with id: " + itemId + " from old name " + previousName + ", to new name: " + newName); - //Needed to check if the item is shared - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + // Needed to check if the item is shared + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); sourceItemIsShared = wsItem.isShared(); - + wsItem = workspace.renameItem(itemId, newName); workspaceLogger.debug("Item renamed is: " + wsItem); @@ -1410,21 +1384,23 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { List listSharedContact = new ArrayList(); NotificationsProducerToStorageHub np = getNotificationProducerToStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem sourceShared = workspace.getRootSharedFolder(wsItem.getId()); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem sourceShared = workspace + .getRootSharedFolder(wsItem.getId()); // NotificationsManager nManager = // WsUtil.getNotificationManager(this.getThreadLocalRequest()); listSharedContact = NotificationStorageHubUtil.getListUserSharedByFolderSharedId(sourceShared, workspace); - + // THE ITEM RENAMED IS A SHARED FOLDER if (NotificationStorageHubUtil.isFolderAndShared(wsItem)) { np.notifyFolderRenamed(listSharedContact, wsItem, previousName, newName, sourceShared.getId()); } else { // THE ITEM RENAMED IS A SHARED ITEM - //if (sourceShared instanceof org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder) - np.notifyItemRenamed(listSharedContact, previousName, wsItem, - (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder) sourceShared, - workspace); + // if (sourceShared instanceof + // org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder) + np.notifyItemRenamed(listSharedContact, previousName, wsItem, + (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder) sourceShared, + workspace); } } catch (Exception e) { workspaceLogger.error("An error occurred in checkNotify ", e); @@ -1445,7 +1421,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT // String error = "An error occurred on renaming item. " + ConstantsExplorer.ERROR_ITEM_DOES_NOT_EXIST; // workspaceLogger.error(error, e2); // throw new Exception(error); - //TO STORAGEHUB EXCEPTION + // TO STORAGEHUB EXCEPTION } catch (UserNotAuthorizedException e) { String error = "Insufficient Privileges to rename the item"; workspaceLogger.error(error, e); @@ -1453,14 +1429,15 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } catch (Exception e) { workspaceLogger.error("Renaming item error:", e); StringBuilder error = new StringBuilder(); - if(sourceItemIsShared) { + if (sourceItemIsShared) { error.append("Renaming shared folders is not supported"); throw new SHUBOperationNotAllowedException(error.toString()); - }else { - error.append("Ops an error occurred renaming the item! Either you have not the permission to rename it or a server error occurred. Please, refresh and try again"); + } else { + error.append( + "Ops an error occurred renaming the item! Either you have not the permission to rename it or a server error occurred. Please, refresh and try again"); throw new Exception(error.toString()); } - + } } @@ -1473,13 +1450,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Copy items. * - * @param idsItem - * the ids item - * @param destinationFolderId - * the destination folder id + * @param idsItem the ids item + * @param destinationFolderId the destination folder id * @return the workspace operation result - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public WorkspaceOperationResult copyItems(List idsItem, String destinationFolderId) throws Exception { @@ -1579,13 +1553,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the public link for file item id. * - * @param itemId - * the item id - * @param shortenUrl - * the shorten url + * @param itemId the item id + * @param shortenUrl the shorten url * @return the public link for file item id - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public PublicLink getPublicLinkForFileItemId(String itemId, boolean shortenUrl) throws Exception { @@ -1634,11 +1605,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the version history. * - * @param fileIdentifier - * the file identifier + * @param fileIdentifier the file identifier * @return the version history - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getVersionHistory(String fileIdentifier) throws Exception { @@ -1675,8 +1644,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the public link for file item id to version. * - * @param itemId the item id - * @param version the version + * @param itemId the item id + * @param version the version * @param shortenUrl the shorten url * @return the public link for file item id to version * @throws Exception the exception @@ -1732,19 +1701,16 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - /** * Gets the list parents by item identifier. * - * @param itemIdentifier - * the item identifier - * @param includeItemAsParent - * - if parameter is true and item passed in input is a folder, - * the folder is included in path returned as last parent + * @param itemIdentifier the item identifier + * @param includeItemAsParent - if parameter is true and item passed in input is + * a folder, the folder is included in path returned + * as last parent * @return the list parents by item identifier - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) @@ -1763,57 +1729,64 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); - List parents = workspace.getParentsById(itemIdentifier); + List parents = workspace + .getParentsById(itemIdentifier); workspaceLogger.info("The Parents returned by SHUB are: " + parents.size()); - if(workspaceLogger.isTraceEnabled()) { + if (workspaceLogger.isTraceEnabled()) { workspaceLogger.trace("They are: "); for (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem workspaceItem : parents) { workspaceLogger.trace(workspaceItem.getName()); } } - - if(parents.size()==0) { - //IT IS THE ROOT - workspaceLogger.info("The item id "+itemIdentifier+" is the root, returning empty list"); + + if (parents.size() == 0) { + // IT IS THE ROOT + workspaceLogger.info("The item id " + itemIdentifier + " is the root, returning empty list"); return new ArrayList(1); } - + String nameSpecialFolder = getNameForSpecialFolder(); - + List arrayParents = new ArrayList(parents.size()); - //loop from last to first index of list of parents - int lastIndex = parents.size()-1; - for (int i=lastIndex; i>=0; i--) { + // loop from last to first index of list of parents + int lastIndex = parents.size() - 1; + for (int i = lastIndex; i >= 0; i--) { org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsFolder = parents.get(i); - workspaceLogger.trace("Adding the item "+ wsFolder.getName()+" at index "+i+" to list of parent"); + workspaceLogger + .trace("Adding the item " + wsFolder.getName() + " at index " + i + " to list of parent"); org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = null; - if(i breadcrumbs = new ArrayList(arrayParents.size() - 1); for (int i = 1; i < arrayParents.size(); i++) { @@ -1836,13 +1809,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @param itemId the item id * @return true, if successful * @throws WorkspaceFolderLocked the workspace folder locked - * @throws Exception the exception + * @throws Exception the exception */ private boolean checkItemLocked(String itemId) throws WorkspaceFolderLocked, Exception { if (itemId == null || itemId.isEmpty()) throw new Exception(IDENTIFIER_IS_NULL); - + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = null; org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = null; try { @@ -1850,48 +1823,43 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspace = getWorkspaceFromStorageHub(); wsItem = workspace.getItem(itemId); + ThreddsWorkspaceSyncServiceImpl workspaceServiceServlet = new ThreddsWorkspaceSyncServiceImpl(); // IF THE ITEM IS A FOLDER, CHECKING IT - if (wsItem.isFolder()) - WorkspaceThreddsSynchronize.getInstance().checkItemSynched(wsItem.getId()); - else { + if (wsItem.isFolder()) { + // WorkspaceThreddsSynchronize.getInstance().checkItemSynched(wsItem.getId()); + workspaceServiceServlet.getConfiguration(itemId, true); + } else { // IF THE ITEM IS A FILE, CHECKING ITS PARENT - String parentId = wsItem.getParentId(); - if(parentId==null) { + String parentId = wsItem.getParentId(); + if (parentId == null) { workspaceLogger.warn("I'm not able to check the lock because the parent id is null"); - }else { - WorkspaceThreddsSynchronize.getInstance().checkItemSynched(parentId); + } else { + //WorkspaceThreddsSynchronize.getInstance().checkItemSynched(parentId); + workspaceServiceServlet.getConfiguration(parentId, true); } } // in this case the folder is synched but not locked return false; } catch (ItemNotSynched e1) { - // in this case the folder is not synched; return false; } catch (WorkspaceFolderLocked e2) { // in this case the folder synching is on-going and the folder is // locked; - String msg = "The folder"; msg += wsItem != null ? ": " + wsItem.getName() : ""; msg += " is locked by a sync. You can not change its content"; workspaceLogger.warn(msg, e2); throw new WorkspaceFolderLocked(itemId, msg); -// } catch (InternalErrorException | ItemNotFoundException | HomeNotFoundException -// | WorkspaceFolderNotFoundException e) { -// workspaceLogger.warn(e); -// throw new Exception("Sorry an error occurred during checking is folder locked, Refresh and try again"); - } catch (Exception e) { - workspaceLogger - .warn("Was there an Exception HL side? Ignoring it.. returning false (that means item not locked)"); + workspaceLogger.warn( + "Was there an Exception SHUB or SyncEngine side? Ignoring it.. returning false (that means item not locked)"); return false; } } - /** * Gets the item for file grid. @@ -1900,29 +1868,33 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the item for file grid * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getItemForFileGrid(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getItemForFileGrid(java.lang.String) */ @Override public FileGridModel getItemForFileGrid(String itemId) throws Exception { try { - + if (itemId == null) throw new Exception(IDENTIFIER_IS_NULL); - - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); FileModel parentModel = null; - if(wsItem.getParentId()!=null) { - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = workspace.getItem(wsItem.getParentId()); + if (wsItem.getParentId() != null) { + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = workspace + .getItem(wsItem.getParentId()); parentModel = converter.toTreeFileModel(parent, null, parent.isShared()); } - + return converter.toGridFileModel(wsItem, parentModel); - + } catch (Exception e) { workspaceLogger.error("Error in server during item retrieving, getItemForFileGrid", e); String error = ConstantsExplorer.SERVER_ERROR + RETRIEVING_ITEM_EITHER_ITEM_DOESN_T_EXIST; @@ -1930,7 +1902,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - /** * Gets the item for file tree. * @@ -1938,8 +1909,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the item for file tree * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getItemForFileTree(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getItemForFileTree(java.lang.String) */ @Override public FileModel getItemForFileTree(String itemId) throws Exception { @@ -1948,18 +1922,18 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if (itemId == null) throw new Exception(IDENTIFIER_IS_NULL); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); - + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); FileModel parentModel = null; org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = null; - if(wsItem.getParentId()!=null) { + if (wsItem.getParentId() != null) { parent = workspace.getItem(wsItem.getParentId()); parentModel = converter.toTreeFileModel(parent, null, parent.isShared()); } - - return converter.toTreeFileModel(wsItem, parentModel, parent!=null?parent.isShared():false); + + return converter.toTreeFileModel(wsItem, parentModel, parent != null ? parent.isShared() : false); } catch (Exception e) { workspaceLogger.error("Error in server during item retrieving, getItemForFileGrid", e); @@ -1967,19 +1941,22 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - /** * Gets the image by id. * - * @param identifier the identifier + * @param identifier the identifier * @param isInteralImage the is interal image - * @param fullDetails the full details + * @param fullDetails the full details * @return the image by id * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getImageById(java.lang.String, boolean, boolean) + /* + * (non-Javadoc) + * + * @see + * org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getImageById + * (java.lang.String, boolean, boolean) */ @Override public GWTWorkspaceItem getImageById(String identifier, boolean isInteralImage, boolean fullDetails) @@ -1988,20 +1965,19 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if (identifier == null) throw new Exception(IDENTIFIER_IS_NULL); - try { workspaceLogger.debug("get image by id: " + identifier); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); - - if(wsItem instanceof ImageFileItem) { + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); + + if (wsItem instanceof ImageFileItem) { ImageFileItem imageFile = (ImageFileItem) wsItem; PortalContextInfo context = WsUtil.getPortalContext(this.getThreadLocalRequest()); GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest()); - return ObjectStorageHubToWorkpaceMapper.buildGWTWorkspaceImage(imageFile, isInteralImage, fullDetails, context.getCurrGroupId() + "", - user.getUserId() + ""); - }else { + return ObjectStorageHubToWorkpaceMapper.buildGWTWorkspaceImage(imageFile, isInteralImage, fullDetails, + context.getCurrGroupId() + "", user.getUserId() + ""); + } else { throw new Exception("The input id is not an image"); } } catch (Exception e) { @@ -2009,7 +1985,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - + /* * (non-Javadoc) * @@ -2019,15 +1995,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the url by id. * - * @param identifier - * the identifier - * @param isInternalUrl - * the is internal url - * @param fullDetails - * the full details + * @param identifier the identifier + * @param isInternalUrl the is internal url + * @param fullDetails the full details * @return the url by id - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public GWTWorkspaceItem getUrlById(String identifier, boolean isInternalUrl, boolean fullDetails) throws Exception { @@ -2038,17 +2010,18 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(IDENTIFIER_IS_NULL); workspaceLogger.debug("get URL by id: " + identifier); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); - // workspace - - if(wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.URLFileItem) { + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); + // workspace + + if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.URLFileItem) { URLFileItem fileItem = (URLFileItem) wsItem; - return ObjectStorageHubToWorkpaceMapper.buildGWTWorspaceUrl(workspace, fileItem, isInternalUrl, fullDetails); - }else if (wsItem instanceof URLItem){ + return ObjectStorageHubToWorkpaceMapper.buildGWTWorspaceUrl(workspace, fileItem, isInternalUrl, + fullDetails); + } else if (wsItem instanceof URLItem) { URLItem urlFile = (URLItem) wsItem; return new GWTExternalUrl(urlFile.getValue().toString()); - }else { + } else { throw new Exception("The input id is not a FILE or a URL"); } @@ -2060,16 +2033,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - /** * Sets the value in session. * - * @param name - * the name - * @param value - * the value - * @throws Exception - * the exception + * @param name the name + * @param value the value + * @throws Exception the exception */ @Override public void setValueInSession(String name, String value) throws Exception { @@ -2082,7 +2051,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - /** * Gets the item creation date by id. @@ -2091,8 +2059,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the item creation date by id * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getItemCreationDateById(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getItemCreationDateById(java.lang.String) */ @Override public Date getItemCreationDateById(String itemId) throws Exception { @@ -2103,9 +2074,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(IDENTIFIER_IS_NULL); workspaceLogger.debug("getItemCreationDateById by id: " + itemId); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); - + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + Calendar cl = wsItem.getCreationTime(); if (cl != null) @@ -2118,7 +2089,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - + /* * (non-Javadoc) * @@ -2128,23 +2099,21 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Load size by item id. * - * @param itemId - * the item id + * @param itemId the item id * @return the long - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public Long loadSizeByItemId(String itemId) throws Exception { - + if (itemId == null) throw new Exception(IDENTIFIER_IS_NULL); workspaceLogger.info("get Size By ItemId " + itemId); try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); Long size = new Long(-1); if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.FileItem) { // ITEM @@ -2152,12 +2121,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT size = new Long(fileItem.getSize()); } else if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFolder) { // FOLDER org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFolder theFolder = (org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFolder) wsItem; - //TODO ASK TO LUCIO; - //size = theFolder.getSize(); - } else if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceSharedFolder) { // SHARED FOLDER + // TODO ASK TO LUCIO; + // size = theFolder.getSize(); + } else if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceSharedFolder) { // SHARED + // FOLDER org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceSharedFolder theFolder = (org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceSharedFolder) wsItem; - //TODO ASK TO LUCIO; - //size = theFolder.getSize(); + // TODO ASK TO LUCIO; + // size = theFolder.getSize(); } workspaceLogger.info("returning size: " + size); return size; @@ -2167,7 +2137,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - /** * Load last modification date by id. @@ -2176,20 +2145,23 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the date * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#loadLastModificationDateById(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * loadLastModificationDateById(java.lang.String) */ @Override public Date loadLastModificationDateById(String itemId) throws Exception { - + if (itemId == null) throw new Exception(IDENTIFIER_IS_NULL); workspaceLogger.trace("get last modification date ItemId " + itemId); try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); Date lastModification = null; if (wsItem.getLastModificationTime() != null) { @@ -2203,10 +2175,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e.getMessage()); } } - - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getParentByItemId(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getParentByItemId(java.lang.String) */ /** * Gets the parent by item id. @@ -2215,26 +2189,27 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the parent by item id * @throws Exception the exception */ - //TODO NEED TO TEST IT + // TODO NEED TO TEST IT @Override public FileModel getParentByItemId(String identifier) throws Exception { - + if (identifier == null) throw new Exception(IDENTIFIER_IS_NULL); workspaceLogger.trace("get Parent By Item Identifier " + identifier); try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); workspaceLogger.trace("workspace has returned item name: " + wsItem.getName()); - + FileModel parentModel = null; - if(wsItem!=null && wsItem.getParentId()!=null) { - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = workspace.getItem(wsItem.getParentId()); + if (wsItem != null && wsItem.getParentId() != null) { + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem parent = workspace + .getItem(wsItem.getParentId()); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); parentModel = converter.toTreeFileModel(parent, null, parent.isShared()); - + } workspaceLogger.trace("parent not found - retuning"); @@ -2256,11 +2231,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the short url. * - * @param longUrl - * the long url + * @param longUrl the long url * @return the short url - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public String getShortUrl(String longUrl) throws Exception { @@ -2279,7 +2252,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT return null; } } - + /* * (non-Javadoc) * @@ -2289,11 +2262,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the link for send to switch board. * - * @param itemId - * the item id + * @param itemId the item id * @return the link for send to switch board - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public String getLinkForSendToSwitchBoard(String itemId) throws Exception { @@ -2312,8 +2283,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspaceLogger.debug("LinkForSendToSwitchBoard: " + encodedURI + " encoded ..."); return new StringBuilder(sbEndpoint).append(encodedURI).toString(); } - - /** * Gets the item description by id. @@ -2322,12 +2291,15 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the item description by id * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getItemDescriptionById(java.lang.String) + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getItemDescriptionById(java.lang.String) */ @Override public String getItemDescriptionById(String identifier) throws Exception { - + workspaceLogger.info("Getting ItemDescriptionById: " + identifier); if (identifier == null || identifier.isEmpty()) { workspaceLogger.warn("Getting ItemDescriptionById identifier is null or empty, returning null"); @@ -2336,8 +2308,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier); workspaceLogger.trace("workspace has returned item name: " + wsItem.getName()); return wsItem.getDescription(); @@ -2347,7 +2319,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - /** * Gets the user workspace size. @@ -2355,14 +2326,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * @return the user workspace size * @throws Exception the exception */ - /* (non-Javadoc) - * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getUserWorkspaceSize() + /* + * (non-Javadoc) + * + * @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService# + * getUserWorkspaceSize() */ @Override public String getUserWorkspaceSize() throws Exception { try { workspaceLogger.info("Getting workspace size.."); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); long size = workspace.getDiskUsage(); // workspaceLogger.info("Root size is: "+size +" formatting.."); String formatSize = FormatterUtil.formatFileSize(size); @@ -2375,7 +2349,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - + /* * (non-Javadoc) * @@ -2386,14 +2360,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the user workspace total items. * * @return the user workspace total items - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public long getUserWorkspaceTotalItems() throws Exception { try { workspaceLogger.info("Getting total items.."); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); long size = workspace.getTotalItems(); workspaceLogger.info("returning total items value: " + size); return size; @@ -2403,7 +2376,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - + /* * (non-Javadoc) * @@ -2414,14 +2387,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the user workspace quote. * * @return the user workspace quote - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public WorkspaceUserQuote getUserWorkspaceQuote() throws Exception { try { workspaceLogger.info("Getting UserWorkspaceQuote.."); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); long size = workspace.getDiskUsage(); workspaceLogger.info("Root size is: " + size + " formatting.."); String formatSize = FormatterUtil.formatFileSize(size); @@ -2438,8 +2410,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT return null; } } - - + /* * (non-Javadoc) * @@ -2449,15 +2420,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Load gcube item properties. * - * @param itemId - * the item id + * @param itemId the item id * @return the map - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public Map loadGcubeItemProperties(String itemId) throws Exception { - + workspaceLogger.info("Getting GcubeItemProperties for itemId: " + itemId); if (itemId == null || itemId.isEmpty()) { workspaceLogger.warn("Getting GcubeItemProperties identifier is null or empty, returning null"); @@ -2465,7 +2434,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); PropertyMap properties = workspace.getGcubeItemProperties(itemId); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); Map mapProperties = converter.toSimpleMap(properties); @@ -2481,7 +2450,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - + /* * (non-Javadoc) * @@ -2491,56 +2460,58 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the items by search name. * - * @param text - * the text - * @param folderId - * the folder id + * @param text the text + * @param folderId the folder id * @return the items by search name - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getItemsBySearchName(String text, String folderId) throws Exception { - try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); if (folderId == null || folderId.isEmpty()) { workspaceLogger.debug("searching folderId is null, searching from the root folder"); folderId = workspace.getRoot().getId(); } - + workspaceLogger.debug("applying business logic for searching, see #18174"); - + String toSearch = text; - if(toSearch.startsWith(CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH) && toSearch.endsWith(CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH)){ - workspaceLogger.info("Detected intent of exactly matching (the input text is between "+CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH+" char)"); - toSearch = toSearch.substring(1,toSearch.length()-1); - workspaceLogger.info("exactly matching changed the input text to: "+toSearch); - }else { - toSearch = String.format("%s%s%s", JCR_WILDCARD_TO_SEARCH,toSearch,JCR_WILDCARD_TO_SEARCH); - workspaceLogger.info("prepending and appending the wildcard "+JCR_WILDCARD_TO_SEARCH+", changed the input text to: "+toSearch); + if (toSearch.startsWith(CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH) + && toSearch.endsWith(CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH)) { + workspaceLogger.info("Detected intent of exactly matching (the input text is between " + + CHAR_FOR_SEARCHING_WITH_EXACTLY_MATCH + " char)"); + toSearch = toSearch.substring(1, toSearch.length() - 1); + workspaceLogger.info("exactly matching changed the input text to: " + toSearch); + } else { + toSearch = String.format("%s%s%s", JCR_WILDCARD_TO_SEARCH, toSearch, JCR_WILDCARD_TO_SEARCH); + workspaceLogger.info("prepending and appending the wildcard " + JCR_WILDCARD_TO_SEARCH + + ", changed the input text to: " + toSearch); } workspaceLogger.info("backend searching for text: " + toSearch + " in the folder id: " + folderId); - List foundItems = workspace.search(toSearch, folderId); - - if(foundItems==null) { + List foundItems = workspace.search(toSearch, + folderId); + + if (foundItems == null) { workspaceLogger.info("Searching by SHUB returned null, instancing empty list"); foundItems = new ArrayList(); } - + workspaceLogger.info("Searching by SHUB returned " + foundItems.size() + " item/s, converting it/them"); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); List listFileGridModels = new ArrayList(); - + for (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem workspaceItem : foundItems) { - workspaceLogger.debug("Converting grid item: " + workspaceItem.getId() + " name " + workspaceItem.getName()); + workspaceLogger + .debug("Converting grid item: " + workspaceItem.getId() + " name " + workspaceItem.getName()); listFileGridModels.add(converter.toGridFileModel(workspaceItem, null)); } - - workspaceLogger.info("Search objects converted is/are: "+listFileGridModels.size()+", returning it/them"); + + workspaceLogger + .info("Search objects converted is/are: " + listFileGridModels.size() + ", returning it/them"); return listFileGridModels; } catch (Exception e) { @@ -2548,22 +2519,20 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception("Error occured on searching, please retry or contact the support"); } } - + /** * Gets the children sub tree to root by identifier. * - * @param itemIdentifier - * the item identifier + * @param itemIdentifier the item identifier * @return the children sub tree to root by identifier - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public ArrayList getChildrenSubTreeToRootByIdentifier(String itemIdentifier) throws Exception { - + throw new Exception("The method getChildrenSubTreeToRootByIdentifier is not implement to interact with SHUB"); } - + /* * (non-Javadoc) * @@ -2573,32 +2542,29 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Item exists in workpace folder. * - * @param parentId - * the parent id - * @param itemName - * the item name + * @param parentId the parent id + * @param itemName the item name * @return the string - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public String itemExistsInWorkpaceFolder(String parentId, String itemName) throws Exception { - - workspaceLogger.debug("called itemExistsInWorkpace for name "+itemName+" in the parent Id: " + parentId); + + workspaceLogger.debug("called itemExistsInWorkpace for name " + itemName + " in the parent Id: " + parentId); if (parentId == null) throw new Exception("I'm not able to perform searching.. the folder id is null"); - try { - - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); workspaceLogger.info("finding by name: " + itemName + " in the folder id: " + parentId); - List foundItems = workspace.find(itemName, parentId); + List foundItems = workspace.find(itemName, + parentId); if (foundItems == null || foundItems.isEmpty()) return null; - + return foundItems.get(0).getId(); // } catch (InternalErrorException e) { @@ -2606,12 +2572,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT // } catch (ItemNotFoundException e) { // return null; } catch (Exception e) { - String error = "Error on searching the item "+itemName+" in the passed folder id"; + String error = "Error on searching the item " + itemName + " in the passed folder id"; workspaceLogger.error(error, e); throw new Exception(e.getMessage()); } } - /* * (non-Javadoc) @@ -2622,35 +2587,36 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the accounting history. * - * @param identifier - * the identifier + * @param identifier the identifier * @return the accounting history - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getAccountingHistory(String identifier) throws Exception { - + if (identifier == null) throw new Exception("I'm not able to get accounting history... the folder id is null"); - + try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier,true,false,false); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier, true, + false, false); List accoutings = wsItem.getAccounting(); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); - List listAccounting = converter.buildGXTAccountingItem(accoutings, GxtAccountingEntryType.ALL); + List listAccounting = converter.buildGXTAccountingItem(accoutings, + GxtAccountingEntryType.ALL); workspaceLogger.debug("get accouting returning size " + listAccounting.size()); return listAccounting; } catch (Exception e) { - workspaceLogger.error("Error reading the accounting history for item id: "+identifier, e); - String error = ConstantsExplorer.SERVER_ERROR + " getting accounting History. " + ConstantsExplorer.TRY_AGAIN; + workspaceLogger.error("Error reading the accounting history for item id: " + identifier, e); + String error = ConstantsExplorer.SERVER_ERROR + " getting accounting History. " + + ConstantsExplorer.TRY_AGAIN; throw new Exception(error); } } - + /* * (non-Javadoc) * @@ -2661,8 +2627,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT * Gets the list of vr es for logged user. * * @return the list of vr es for logged user - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getListOfVREsForLoggedUser() throws Exception { @@ -2701,29 +2666,28 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspaceLogger.info("Returning list of VREs: " + listOfVres); return listOfVres; } - + /** * Gets the HTML gcube item properties. * - * @param itemId - * the item id - * @return The Gcube Item Properties in HTML format if itemId is a GcubeItem - * and contains properties, null otherwise - * @throws Exception - * the exception + * @param itemId the item id + * @return The Gcube Item Properties in HTML format if itemId is a GcubeItem and + * contains properties, null otherwise + * @throws Exception the exception */ @Override public String getHTMLGcubeItemProperties(String itemId) throws Exception { workspaceLogger.info("getting HTMLGcubeItemProperties for itemId: " + itemId); if (itemId == null || itemId.isEmpty()) { - workspaceLogger.warn("Error on getting GcubeItemProperties the identifier is null or empty, returning null"); + workspaceLogger + .warn("Error on getting GcubeItemProperties the identifier is null or empty, returning null"); return null; } - + try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); return converter.getGcubeItemPropertiesForGcubeItemAsHTML(wsItem); @@ -2733,51 +2697,50 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - + /** * Gets the accounting readers. * - * @param identifier - * the identifier + * @param identifier the identifier * @return the accounting readers - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getAccountingReaders(String identifier) throws Exception { - + if (identifier == null || identifier.isEmpty()) { workspaceLogger.warn("Error on getting accounting history to readers, identifier is null, returning null"); return null; } - workspaceLogger.debug("reading accounting history only to "+ GxtAccountingEntryType.READ+" for id: " + identifier); + workspaceLogger + .debug("reading accounting history only to " + GxtAccountingEntryType.READ + " for id: " + identifier); try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier,true,false,false); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(identifier, true, + false, false); List accoutings = wsItem.getAccounting(); StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); - List listOfReadFromAccounting = converter.buildGXTAccountingItem(accoutings, GxtAccountingEntryType.READ); - workspaceLogger.info("list of "+GxtAccountingEntryType.READ+" into accounting are:" + listOfReadFromAccounting.size()); + List listOfReadFromAccounting = converter.buildGXTAccountingItem(accoutings, + GxtAccountingEntryType.READ); + workspaceLogger.info("list of " + GxtAccountingEntryType.READ + " into accounting are:" + + listOfReadFromAccounting.size()); return listOfReadFromAccounting; - + } catch (Exception e) { workspaceLogger.error("Error get accounting readers ", e); String error = ConstantsExplorer.SERVER_ERROR + " getting account. " + ConstantsExplorer.TRY_AGAIN; throw new Exception(error); } } - + /** * Sets the gcube item properties. * - * @param itemId - * the item id - * @param properties - * the properties - * @throws Exception - * the exception + * @param itemId the item id + * @param properties the properties + * @throws Exception the exception */ @Override public void setGcubeItemProperties(String itemId, Map properties) throws Exception { @@ -2789,12 +2752,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); - + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(itemId); + if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.impl.GcubeItem) { workspaceLogger.info("Adding " + properties.size() + " properties to GCubeItem: " + itemId); - Map mapObjs = properties==null?null:new HashMap(properties.size()); + Map mapObjs = properties == null ? null + : new HashMap(properties.size()); mapObjs.putAll(properties); workspace.updateMetadata(itemId, mapObjs); } else @@ -2809,40 +2773,35 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(error); } } - + /** * Creates the external url. * - * @param parentId - * the parent id - * @param name - * the name - * @param description - * the description - * @param url - * the url + * @param parentId the parent id + * @param name the name + * @param description the description + * @param url the url * @return the file model - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public FileModel createExternalUrl(String parentId, String name, String description, String url) throws Exception { - workspaceLogger.info("Called createExternalUrl [parent: "+parentId+", url: "+url+"]"); + workspaceLogger.info("Called createExternalUrl [parent: " + parentId + ", url: " + url + "]"); try { - + if (parentId == null) { workspaceLogger.error("Error on creating url. Parent ID is null"); throw new Exception("Parent ID is null"); } - + checkItemLocked(parentId); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsFolderParent = workspace.getItem(parentId); - + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsFolderParent = workspace.getItem(parentId); + StorageHubToWorkpaceConverter converter = getStorageHubToWorkpaceConverter(); FileModel parentModel = converter.toTreeFileModel(wsFolderParent, null, wsFolderParent.isShared()); - + workspaceLogger.debug("creating the URL..."); URLItem ext = workspace.createURL(name, description, url, parentId); workspaceLogger.info("created URL file: " + ext.getName()); @@ -2853,11 +2812,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new Exception(e1.getMessage()); } catch (Exception e) { - workspaceLogger.error("Error on creating the URL in the folder id: "+parentId, e); + workspaceLogger.error("Error on creating the URL in the folder id: " + parentId, e); throw new Exception(e.getMessage()); } } - + /* * (non-Javadoc) * @@ -2867,37 +2826,35 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Mark folder as public for folder item id. * - * @param folderId - * the item id - * @param setPublic - * the set public + * @param folderId the item id + * @param setPublic the set public * @return the public link - * @throws SessionExpiredException - * the session expired exception - * @throws Exception - * the exception + * @throws SessionExpiredException the session expired exception + * @throws Exception the exception */ @Override public PublicLink markFolderAsPublicForFolderItemId(String folderId, boolean setPublic) throws SessionExpiredException, Exception { - workspaceLogger.info("called markFolderAsPublicForFolderItemId on folder id: " + folderId +" setPublic: "+setPublic); - + workspaceLogger.info( + "called markFolderAsPublicForFolderItemId on folder id: " + folderId + " setPublic: " + setPublic); + if (isSessionExpired()) throw new SessionExpiredException(); try { - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); String folderLink = null; try { - - //Changing access to.. if needed + + // Changing access to.. if needed boolean newStatus = workspace.setFolderAsPublic(folderId, setPublic); - workspaceLogger.info("The folder "+folderId+" has the public status at " +newStatus+ " on SHUB"); - //If the folder was published + workspaceLogger.info("The folder " + folderId + " has the public status at " + newStatus + " on SHUB"); + // If the folder was published if (newStatus) { - + workspaceLogger.info("SHUB returned the folder link id: " + folderId); - ApplicationProfileReader apReader = new ApplicationProfileReader("Workspace-Explorer-App", "org.gcube.portlets.user.workspaceexplorerapp.server.WorkspaceExplorerAppServiceImpl"); + ApplicationProfileReader apReader = new ApplicationProfileReader("Workspace-Explorer-App", + "org.gcube.portlets.user.workspaceexplorerapp.server.WorkspaceExplorerAppServiceImpl"); ApplicationProfile ap = apReader.readProfileFromInfrastrucure(); String encriptedFId = StringEncrypter.getEncrypter().encrypt(folderId); @@ -2915,24 +2872,25 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT shortURL = "not available"; } PublicLink pubL = new PublicLink(folderLink, shortURL); - workspaceLogger.info("Returning the: "+pubL); + workspaceLogger.info("Returning the: " + pubL); return pubL; } - workspaceLogger.info("The folder has the public status at "+setPublic+" so returning Public Link as null"); + workspaceLogger + .info("The folder has the public status at " + setPublic + " so returning Public Link as null"); return null; - - }catch (Exception e) { - workspaceLogger.error("Error on changing access to folder as public: "+setPublic, e); + + } catch (Exception e) { + workspaceLogger.error("Error on changing access to folder as public: " + setPublic, e); String error = ConstantsExplorer.SERVER_ERROR + " changing access to folder id: " + folderId; throw new Exception(error); } } catch (Exception e) { - workspaceLogger.error("Error on getting the folder id: "+folderId, e); + workspaceLogger.error("Error on getting the folder id: " + folderId, e); throw new Exception(e.getMessage()); } } - + /* * (non-Javadoc) * @@ -2942,13 +2900,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT /** * Gets the images for folder. * - * @param folderId - * the folder id - * @param currentImageId - * the current image id + * @param folderId the folder id + * @param currentImageId the current image id * @return the images for folder - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List getImagesForFolder(String folderId, String currentImageId) throws Exception { @@ -2958,35 +2913,36 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT try { workspaceLogger.debug("get images for folder id: " + folderId); - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(folderId); + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(folderId); List images = new ArrayList(); if (wsItem.isFolder()) { org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder folder = (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder) wsItem; - List children = workspace.getChildren(folder.getId()); - + List children = workspace + .getChildren(folder.getId()); + // GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); PortalContextInfo context = WsUtil.getPortalContext(this.getThreadLocalRequest()); GCubeUser user = PortalContext.getConfiguration().getCurrentUser(this.getThreadLocalRequest()); for (org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem workspaceItem : children) { boolean foundCurrentImage = false; - //IS AN IMAGE? + // IS AN IMAGE? if (workspaceItem instanceof ImageFileItem) { try { ImageFileItem imageFileItem = (ImageFileItem) workspaceItem; GWTWorkspaceItem image = null; - + image = ObjectStorageHubToWorkpaceMapper.buildGWTWorkspaceImage(imageFileItem, true, false, context.getCurrGroupId() + "", user.getUserId() + ""); image.setId(workspaceItem.getId()); - - + if (image != null) { if (!foundCurrentImage && image.getId().compareTo(currentImageId) == 0) { - workspaceLogger.debug(image.getName() + " is the current displaying image so adding to list as first element"); + workspaceLogger.debug(image.getName() + + " is the current displaying image so adding to list as first element"); images.add(0, image); foundCurrentImage = true; } else { @@ -2994,15 +2950,16 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT images.add(image); } } - }catch (Exception e) { - workspaceLogger.warn("Error on managing the file item: "+workspaceItem.getId() +" as an "+ImageFileItem.class.getName()); + } catch (Exception e) { + workspaceLogger.warn("Error on managing the file item: " + workspaceItem.getId() + " as an " + + ImageFileItem.class.getName()); } } } } - - if(workspaceLogger.isTraceEnabled()) { - workspaceLogger.trace("Returning list of images for folder: "+folderId); + + if (workspaceLogger.isTraceEnabled()) { + workspaceLogger.trace("Returning list of images for folder: " + folderId); for (GWTWorkspaceItem gwtWorkspaceItem : images) { workspaceLogger.trace(gwtWorkspaceItem.toString()); } @@ -3016,64 +2973,63 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } } - /** * Perform operation on versioned file. * - * @param fileId - * the file id - * @param olderVersionIDs - * the older version i ds - * @param operation - * the operation + * @param fileId the file id + * @param olderVersionIDs the older version i ds + * @param operation the operation * @return the list - * @throws Exception - * the exception + * @throws Exception the exception */ @Override public List performOperationOnVersionedFile(String fileId, List olderVersionIDs, WorkspaceVersioningOperation operation) throws Exception { - - workspaceLogger.info("Called perform operation on Versioned File Id: " + fileId + ", Ids Version: " + olderVersionIDs + " perform operation: " + operation); + + workspaceLogger.info("Called perform operation on Versioned File Id: " + fileId + ", Ids Version: " + + olderVersionIDs + " perform operation: " + operation); if (fileId == null || olderVersionIDs == null || olderVersionIDs.size() == 0) throw new Exception("Versioned File id or List of versioned file is null"); try { - - org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); - org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(fileId); + + org.gcube.common.storagehubwrapper.server.tohl.Workspace workspace = getWorkspaceFromStorageHub(); + org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem wsItem = workspace.getItem(fileId); if (wsItem instanceof org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem) { - //org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem fileItem = (org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem) wsItem; + // org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem fileItem = + // (org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem) wsItem; switch (operation) { - case DOWNLOAD: { - // IMPLEMENTED CLIENT-SIDE - break; - } - case DELETE_ALL_OLDER_VERSIONS: { - throw new Exception(operation+" must be implemented on SHUB-side"); - // MUST BE OPTIMIZED HL-SIDE - // for (String olderVersionId : olderVersionIDs) { - //// fileItem.removeVersion(olderVersionId); - // throw new Exception(operation+" must be implemented on SHUB-side"); - // workspaceLogger.info("Version " + olderVersionId + " of file id: " + fileId + " removed"); - // } - // return getVersionHistory(fileId); - } - case REFRESH: { - return getVersionHistory(fileId); - } - case DELETE_PERMANENTLY: { - throw new Exception(operation+" must be implemented on SHUB-side"); - // for (String olderVersionId : olderVersionIDs) { - // fileItem.removeVersion(olderVersionId); - // workspaceLogger.info("Version " + olderVersionId + " of file id: " + fileId + " removed"); - // } - // return getVersionHistory(fileId); - } - default: { - break; - } + case DOWNLOAD: { + // IMPLEMENTED CLIENT-SIDE + break; + } + case DELETE_ALL_OLDER_VERSIONS: { + throw new Exception(operation + " must be implemented on SHUB-side"); + // MUST BE OPTIMIZED HL-SIDE + // for (String olderVersionId : olderVersionIDs) { + //// fileItem.removeVersion(olderVersionId); + // throw new Exception(operation+" must be implemented on SHUB-side"); + // workspaceLogger.info("Version " + olderVersionId + " of file id: " + fileId + + // " removed"); + // } + // return getVersionHistory(fileId); + } + case REFRESH: { + return getVersionHistory(fileId); + } + case DELETE_PERMANENTLY: { + throw new Exception(operation + " must be implemented on SHUB-side"); + // for (String olderVersionId : olderVersionIDs) { + // fileItem.removeVersion(olderVersionId); + // workspaceLogger.info("Version " + olderVersionId + " of file id: " + fileId + + // " removed"); + // } + // return getVersionHistory(fileId); + } + default: { + break; + } } return getVersionHistory(fileId); @@ -3082,18 +3038,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT throw new FileNotVersionedException("Selected file is not versioned"); } catch (Exception e) { - + workspaceLogger.error("Error during performing operation on versioned file with id: " + fileId, e); String error = ConstantsExplorer.SERVER_ERROR + " updating versioning of file id: " + fileId; throw new Exception(error); } } - /** * Update description for item. * - * @param itemId the item id + * @param itemId the item id * @param newDescription the new description * @return the string * @throws Exception the exception @@ -3114,38 +3069,36 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } catch (Exception e) { workspaceLogger.error("Error on updating the description for item: " + itemId, e); - - if(e.getMessage().toLowerCase().contains("insufficent privileges")) { + + if (e.getMessage().toLowerCase().contains("insufficent privileges")) { throw new Exception("You don't have permission to update this description"); } - - String error = ConstantsExplorer.SERVER_ERROR + " updating the description for item with id: " - + "" + itemId+". Error reported: "+e.getMessage(); - + + String error = ConstantsExplorer.SERVER_ERROR + " updating the description for item with id: " + "" + itemId + + ". Error reported: " + e.getMessage(); + throw new Exception(error); } return newDescription; } - - /** * Gets the allowed mimetypes for preview. * * @return the allowed mimetypes for preview */ - + @Override - public Map> getAllowedMimetypesForPreview(){ + public Map> getAllowedMimetypesForPreview() { workspaceLogger.info("Called getAllowedMimetypesForPreview"); - + Map> map = MimeTypeUtility.getPreviewMimetypeExtensionMap(); - - workspaceLogger.debug("Returning allowed mimetypes for preview: "+map.keySet()); - + + workspaceLogger.debug("Returning allowed mimetypes for preview: " + map.keySet()); + return map; - + } } diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/ObjectStorageHubToWorkpaceMapper.java b/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/ObjectStorageHubToWorkpaceMapper.java index 02c1908..85eb46c 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/ObjectStorageHubToWorkpaceMapper.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/ObjectStorageHubToWorkpaceMapper.java @@ -63,9 +63,6 @@ public class ObjectStorageHubToWorkpaceMapper { isVreFolder = sharedFolder.isVreFolder(); } -// FolderModel root = new FolderModel(workspaceRoot.getId(),workspaceRoot.getName(),null, true, workspaceRoot.isShared(), false, workspaceRoot.isPublic()); -// root.setIsRoot(true); - FolderModel theFolder = new FolderModel(folder.getId(), folder.getName(), null, folder.isFolder(), folder.isShared(), isVreFolder, isPublicFolder); theFolder.setIsRoot(folder.isRoot()); return theFolder; diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/StorageHubToWorkpaceConverter.java b/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/StorageHubToWorkpaceConverter.java index 1c4f4ed..5050b63 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/StorageHubToWorkpaceConverter.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/tostoragehub/StorageHubToWorkpaceConverter.java @@ -29,34 +29,25 @@ import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem; import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItemType; import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder; import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException; -import org.gcube.common.storagehubwrapper.shared.tohl.impl.URLFile; import org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFileVersion; -import org.gcube.common.storagehubwrapper.shared.tohl.items.FileItem; import org.gcube.common.storagehubwrapper.shared.tohl.items.GCubeItem; import org.gcube.common.storagehubwrapper.shared.tohl.items.PropertyMap; -import org.gcube.portal.wssynclibrary.shared.thredds.ThSyncFolderDescriptor; import org.gcube.portal.wssynclibrary.thredds.WorkspaceThreddsSynchronize; import org.gcube.portlets.user.workspace.client.ConstantsExplorer; -import org.gcube.portlets.user.workspace.client.interfaces.GXTCategorySmartFolder; -import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; 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.FolderGridModel; import org.gcube.portlets.user.workspace.client.model.FolderModel; import org.gcube.portlets.user.workspace.server.util.UserUtil; import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingEntryType; import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField; import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; -import org.gcube.usecases.ws.thredds.faults.WorkspaceNotSynchedException; import org.gcube.usecases.ws.thredds.model.ContainerType; import org.gcube.vomanagement.usermanagement.model.GCubeUser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.allen_sauer.gwt.log.client.Log; - /** * The Class StorageHubToWorkpaceConverter. *