123 lines
3.3 KiB
Java
123 lines
3.3 KiB
Java
package org.gcube.portlets.widgets.wsthreddssync.server;
|
|
|
|
import static org.gcube.common.authorization.client.Constants.authorizationService;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.gcube.common.authorization.library.AuthorizationEntry;
|
|
import org.gcube.portal.wssynclibrary.shared.thredds.Sync_Status;
|
|
import org.gcube.portal.wssynclibrary.shared.thredds.ThSyncFolderDescriptor;
|
|
import org.gcube.portal.wssynclibrary.shared.thredds.ThSynchFolderConfiguration;
|
|
import org.gcube.portlets.widgets.wsthreddssync.shared.GcubeScope;
|
|
import org.gcube.portlets.widgets.wsthreddssync.shared.GcubeScopeType;
|
|
import org.gcube.portlets.widgets.wsthreddssync.shared.WsThreddsSynchFolderConfiguration;
|
|
import org.gcube.portlets.widgets.wsthreddssync.shared.WsThreddsSynchFolderDescriptor;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
// TODO: Auto-generated Javadoc
|
|
/**
|
|
* The Class BeanConverter.
|
|
*
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
* Feb 16, 2018
|
|
*/
|
|
public class BeanConverter {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(BeanConverter.class);
|
|
|
|
/**
|
|
* To ws thredds folder config.
|
|
*
|
|
* @param t the t
|
|
* @param theStatus the the status
|
|
* @return the ws thredds synch folder descriptor
|
|
*/
|
|
public static WsThreddsSynchFolderDescriptor toWsThreddsFolderConfig(ThSyncFolderDescriptor t, Sync_Status theStatus) {
|
|
|
|
if(t==null)
|
|
return null;
|
|
|
|
WsThreddsSynchFolderDescriptor ws = new WsThreddsSynchFolderDescriptor();
|
|
ws.setServerFolderDescriptor(t);
|
|
ws.setSyncStatus(theStatus);
|
|
|
|
//FROM TARGET TOKEN TO SCOPE
|
|
//t.getConfiguration().getTargetToken()
|
|
|
|
if(t.getConfiguration().getTargetToken()!=null) {
|
|
try {
|
|
AuthorizationEntry entry = authorizationService().get(t.getConfiguration().getTargetToken());
|
|
String scope = entry.getContext();
|
|
GcubeScope selectedScope = new GcubeScope(toScopeTitle(scope), scope, toGcubeScope(scope));
|
|
ws.setSelectedScope(selectedScope);
|
|
logger.debug("Resolved SCOPE: "+selectedScope +" from token");
|
|
}catch (Exception e) {
|
|
// TODO: handle exception
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return ws;
|
|
|
|
}
|
|
|
|
public static String toScopeTitle(String scope){
|
|
|
|
if(scope==null || scope.isEmpty())
|
|
return null;
|
|
|
|
return scope.substring(scope.lastIndexOf("/")+1, scope.length());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* To gcube scope.
|
|
*
|
|
* @param scopeName the scope name
|
|
* @return the gcube scope type
|
|
*/
|
|
public static GcubeScopeType toGcubeScope(String scopeName){
|
|
|
|
if(scopeName==null)
|
|
return null;
|
|
|
|
int count = StringUtils.countMatches(scopeName, "/");
|
|
|
|
if(count==1)
|
|
return GcubeScopeType.ROOT;
|
|
else if(count==2)
|
|
return GcubeScopeType.VO;
|
|
else if(count==3)
|
|
return GcubeScopeType.VRE;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
/**
|
|
* To th synch folder configuration.
|
|
*
|
|
* @param t the t
|
|
* @param targetScopeUserToken the target scope user token
|
|
* @return the th synch folder configuration
|
|
*/
|
|
public static ThSynchFolderConfiguration toThSynchFolderConfiguration(WsThreddsSynchFolderConfiguration t, String targetScopeUserToken) {
|
|
|
|
if(t==null)
|
|
return null;
|
|
|
|
ThSynchFolderConfiguration ts = new ThSynchFolderConfiguration();
|
|
ts.setFilter(t.getFilter());
|
|
ts.setRemotePath(t.getRemotePath());
|
|
ts.setTargetToken(targetScopeUserToken);
|
|
ts.setToCreateCatalogName(t.getCatalogName());
|
|
return ts;
|
|
|
|
};
|
|
|
|
}
|