Updated save of resources

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-gwt-service@114498 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2015-04-28 16:38:21 +00:00
parent bb27dd3754
commit dfd2fb86e5
1 changed files with 71 additions and 18 deletions

View File

@ -294,6 +294,7 @@ import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnViewD
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.PeriodDataType; import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.PeriodDataType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.RelationshipData; import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.RelationshipData;
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ValueDataFormat; import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ValueDataFormat;
import org.gcube.portlets.user.td.widgetcommonevent.shared.uriresolver.ApplicationType;
import org.gcube.portlets.user.uriresolvermanager.UriResolverManager; import org.gcube.portlets.user.uriresolvermanager.UriResolverManager;
import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.api.DiscoveryClient;
import org.gcube.resources.discovery.client.queries.api.SimpleQuery; import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
@ -9041,15 +9042,15 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
resolver = new UriResolverManager(uriResolverSession resolver = new UriResolverManager(uriResolverSession
.getApplicationType().toString()); .getApplicationType().toString());
params.put("smp-uri", uriResolverSession.getUuid()); params.put("smp-uri", uriResolverSession.getUuid());
if(uriResolverSession.getFileName()==null){ if (uriResolverSession.getFileName() == null) {
params.put("fileName", ""); params.put("fileName", "");
} else { } else {
params.put("fileName", uriResolverSession.getFileName()); params.put("fileName", uriResolverSession.getFileName());
} }
if(uriResolverSession.getMimeType()==null){ if (uriResolverSession.getMimeType() == null) {
params.put("contentType", ""); params.put("contentType", "");
} else { } else {
params.put("contentType", uriResolverSession.getMimeType()); params.put("contentType", uriResolverSession.getMimeType());
} }
logger.debug("Uri Resolver params: " + params); logger.debug("Uri Resolver params: " + params);
link = resolver.getLink(params, true); // true, link is shorted link = resolver.getLink(params, true); // true, link is shorted
@ -9059,22 +9060,21 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
resolver = new UriResolverManager(uriResolverSession resolver = new UriResolverManager(uriResolverSession
.getApplicationType().toString()); .getApplicationType().toString());
params.put("smp-id", uriResolverSession.getUuid()); params.put("smp-id", uriResolverSession.getUuid());
if(uriResolverSession.getFileName()==null){ if (uriResolverSession.getFileName() == null) {
params.put("fileName", ""); params.put("fileName", "");
} else { } else {
params.put("fileName", uriResolverSession.getFileName()); params.put("fileName", uriResolverSession.getFileName());
} }
if(uriResolverSession.getMimeType()==null){ if (uriResolverSession.getMimeType() == null) {
params.put("contentType", ""); params.put("contentType", "");
} else { } else {
params.put("contentType", uriResolverSession.getMimeType()); params.put("contentType", uriResolverSession.getMimeType());
} }
logger.debug("Uri Resolver params: " + params); logger.debug("Uri Resolver params: " + params);
link = resolver.getLink(params, true); // true, link is shorted link = resolver.getLink(params, true); // true, link is shorted
// otherwise none // otherwise none
break; break;
default: default:
logger.debug("No resolver enable on this application type"); logger.debug("No resolver enable on this application type");
throw new TDGWTServiceException( throw new TDGWTServiceException(
@ -9186,16 +9186,67 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
mimeType = mimeTypeSupport.getMimeName(); mimeType = mimeTypeSupport.getMimeName();
} }
ResourceTD resource = saveResourceSession.getResourceTDDescriptor() ResourceTDDescriptor resourceTDDescriptor = saveResourceSession
.getResourceTD(); .getResourceTDDescriptor();
String uri = null;
ResourceTDType resourceTDType = resourceTDDescriptor
.getResourceType();
if (resourceTDType == null) {
logger.error("Unknow resource type: null");
throw new TDGWTServiceException("Resource has type null!");
}
ApplicationType applicationType = null;
switch (resourceTDType) {
case CHART:
applicationType = ApplicationType.SMP_ID;
break;
case CODELIST:
applicationType = ApplicationType.SMP_ID;
break;
case CSV:
applicationType = ApplicationType.SMP_ID;
break;
case GENERIC_FILE:
applicationType = ApplicationType.SMP_ID;
break;
case GENERIC_TABLE:
applicationType = ApplicationType.SMP_ID;
break;
case GUESSER:
applicationType = ApplicationType.SMP_ID;
break;
case JSON:
applicationType = ApplicationType.SMP_ID;
break;
case MAP:
applicationType = ApplicationType.GIS;
break;
case SDMX:
applicationType = ApplicationType.SMP_ID;
break;
default:
break;
}
ResourceTD resource = resourceTDDescriptor.getResourceTD();
UriResolverSession uriResolverSession;
if (resource instanceof StringResourceTD) { if (resource instanceof StringResourceTD) {
StringResourceTD stringResourceTD = (StringResourceTD) resource; StringResourceTD stringResourceTD = (StringResourceTD) resource;
uri = stringResourceTD.getStringValue(); String uri = stringResourceTD.getStringValue();
uriResolverSession = new UriResolverSession(uri,
applicationType);
} else { } else {
if (resource instanceof InternalURITD) { if (resource instanceof InternalURITD) {
InternalURITD internalURITD = (InternalURITD) resource; InternalURITD internalURITD = (InternalURITD) resource;
uri = internalURITD.getUrl(); uriResolverSession = new UriResolverSession(
internalURITD.getUrl(), applicationType,
resourceTDDescriptor.getName(),
internalURITD.getMimeType());
mimeType=internalURITD.getMimeType();
} else { } else {
if (resource instanceof TableResourceTD) { if (resource instanceof TableResourceTD) {
throw new TDGWTServiceException( throw new TDGWTServiceException(
@ -9208,18 +9259,20 @@ public class TDGWTServiceImpl extends RemoteServiceServlet implements
} }
} }
if (uri == null || uri.isEmpty()) { String link = getUriFromResolver(uriResolverSession);
if (link == null || link.isEmpty()) {
throw new TDGWTServiceException( throw new TDGWTServiceException(
"This resource does not have valid uri: " + uri); "This resource does not have valid link: " + link);
} }
logger.debug("Create Item On Workspace: [uri=" + uri + " ,user: " logger.debug("Create Item On Workspace: [uri=" + link + " ,user: "
+ aslSession.getUsername() + " ,fileName: " + aslSession.getUsername() + " ,fileName: "
+ saveResourceSession.getFileName() + " ,fileDescription: " + saveResourceSession.getFileName() + " ,fileDescription: "
+ saveResourceSession.getFileDescription() + " ,mimetype:" + saveResourceSession.getFileDescription() + " ,mimetype:"
+ mimeType + " ,folder: " + saveResourceSession.getItemId() + mimeType + " ,folder: " + saveResourceSession.getItemId()
+ "]"); + "]");
storage.createItemOnWorkspace(uri, aslSession.getUsername(), storage.createItemOnWorkspace(link, aslSession.getUsername(),
saveResourceSession.getFileName(), saveResourceSession.getFileName(),
saveResourceSession.getFileDescription(), mimeType, saveResourceSession.getFileDescription(), mimeType,
saveResourceSession.getItemId()); saveResourceSession.getItemId());