2014-02-12 19:46:39 +01:00
/ * *
2016-01-19 15:50:40 +01:00
*
2014-02-12 19:46:39 +01:00
* /
package org.gcube.portlets.user.workspace ;
import java.util.List ;
2014-02-20 12:30:26 +01:00
import java.util.concurrent.TimeUnit ;
2014-02-12 19:46:39 +01:00
2015-03-05 18:47:07 +01:00
import org.apache.log4j.Logger ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.HomeLibrary ;
2015-03-05 18:47:07 +01:00
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException ;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException ;
2015-06-24 16:56:13 +02:00
import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.workspace.Workspace ;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder ;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem ;
2014-02-20 12:30:26 +01:00
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder ;
2015-03-05 18:47:07 +01:00
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException ;
2014-02-12 19:46:39 +01:00
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem ;
import org.gcube.common.scope.api.ScopeProvider ;
import org.gcube.common.scope.impl.ScopeBean ;
/ * *
2016-01-19 15:50:40 +01:00
*
2014-02-12 19:46:39 +01:00
* @author Francesco Mangiacrapa francesco . mangiacrapa @isti.cnr.it
* @Jan 29 , 2014
*
* /
2015-06-24 16:56:13 +02:00
public class ItemRetrieve {
2016-01-19 15:50:40 +01:00
2015-07-15 11:59:51 +02:00
// public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps"; //PRODUCTION
public static String DEFAULT_SCOPE = " /gcube/devsec " ; //DEV
2016-05-05 11:49:36 +02:00
public static String TEST_USER = " francesco.mangiacrapa " ;
2014-02-19 15:03:03 +01:00
// public static String ITEMID = "63832213-098d-42d1-8774-89b6349764c0"; //Activity T3.4 working drafts/T2-EC-IMAR-HO-14-015 iMarine Sustainability WP - Business Model tools.pdf
2016-05-05 11:49:36 +02:00
public static String ITEMID = " ce4866ee-8079-4acf-bcd6-1c9dd786eb73 " ;
2015-07-15 11:59:51 +02:00
// d81d3a64-603f-4907-ae74-be8353211807
2015-06-24 16:56:13 +02:00
protected static Logger logger = Logger . getLogger ( ItemRetrieve . class ) ;
2016-01-19 15:50:40 +01:00
2014-02-12 19:46:39 +01:00
public static void main ( String [ ] args ) {
2016-01-19 15:50:40 +01:00
2015-03-05 18:47:07 +01:00
ScopeBean scope = new ScopeBean ( DEFAULT_SCOPE ) ;
ScopeProvider . instance . set ( scope . toString ( ) ) ;
2016-01-19 15:50:40 +01:00
2015-03-05 18:47:07 +01:00
System . out . println ( " init HL " ) ;
2014-02-12 19:46:39 +01:00
try {
2015-05-29 12:44:48 +02:00
Workspace ws = getWorkspace ( ) ;
2016-01-19 15:50:40 +01:00
2016-03-02 16:04:37 +01:00
System . out . println ( ws . getRoot ( ) . getId ( ) ) ;
2016-05-05 11:49:36 +02:00
retrieveFirstLevel ( ws , null ) ;
//
// retrieveFirstLevel(ws, ITEMID);
//
// System.out.println("get workspace -> OK");
WorkspaceItem item = ws . getItem ( ITEMID ) ;
System . out . println ( " get item id: " + item . getId ( ) + " , name: " + item . getName ( ) + " , parent: " + item . getParent ( ) . getId ( ) + " , parent name: " + item . getParent ( ) . getName ( ) + " , path : " + item . getPath ( ) ) ;
System . out . println ( item ) ;
2015-05-29 12:44:48 +02:00
} catch ( Exception e ) {
2015-03-05 18:47:07 +01:00
e . printStackTrace ( ) ;
}
2016-01-19 15:50:40 +01:00
2015-05-29 12:44:48 +02:00
// } catch (WorkspaceFolderNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (InternalErrorException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (HomeNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (UserNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
2016-01-19 15:50:40 +01:00
//
2015-05-29 12:44:48 +02:00
}
2016-01-19 15:50:40 +01:00
2015-06-24 16:56:13 +02:00
public static Workspace getWorkspace ( ) throws InternalErrorException , HomeNotFoundException , WorkspaceFolderNotFoundException , UserNotFoundException
2015-05-29 12:44:48 +02:00
{
2016-01-19 15:50:40 +01:00
2015-05-29 12:44:48 +02:00
logger . trace ( " Get Workspace scope: " + DEFAULT_SCOPE + " username: " + TEST_USER ) ;
ScopeProvider . instance . set ( DEFAULT_SCOPE ) ;
logger . trace ( " Scope provider instancied " ) ;
2016-01-19 15:50:40 +01:00
2015-06-24 16:56:13 +02:00
// return HomeLibrary.getUserWorkspace(TEST_USER);
return HomeLibrary . getHomeManagerFactory ( ) . getHomeManager ( ) . getHome ( TEST_USER ) . getWorkspace ( ) ;
2015-03-05 18:47:07 +01:00
}
2016-01-19 15:50:40 +01:00
private static void retrieveFirstLevel ( Workspace ws , String foundFolder ) {
2015-03-05 18:47:07 +01:00
try {
2014-02-20 12:30:26 +01:00
//TEST TIME
Long startTime = System . currentTimeMillis ( ) ;
Long endTime = System . currentTimeMillis ( ) - startTime ;
String time = String . format ( " %d msc %d sec " , endTime , TimeUnit . MILLISECONDS . toSeconds ( endTime ) ) ;
2016-01-19 15:50:40 +01:00
2014-02-20 12:30:26 +01:00
startTime = System . currentTimeMillis ( ) ;
2016-01-19 15:50:40 +01:00
System . out . println ( " Start foundFolder at time: " + startTime ) ;
2014-02-20 12:30:26 +01:00
// WorkspaceItem root = ws.getItem(ITEMID);
2016-02-24 11:00:19 +01:00
WorkspaceItem fd ;
if ( foundFolder ! = null ) {
fd = ws . getItem ( foundFolder ) ;
System . out . println ( " foundFolder id: " + foundFolder ) ;
System . out . println ( " start get children " ) ;
} else
fd = ws . getRoot ( ) ;
2016-01-19 15:50:40 +01:00
List < ? extends WorkspaceItem > children = fd . getChildren ( ) ;
2014-02-20 12:30:26 +01:00
System . out . println ( " tree getChildren() returning " + children . size ( ) + " elements in " + time ) ;
2016-01-19 15:50:40 +01:00
2014-02-12 19:46:39 +01:00
System . out . println ( " children size: " + children . size ( ) ) ;
2016-01-19 15:50:40 +01:00
2014-02-12 19:46:39 +01:00
int i = 0 ;
2014-02-20 12:30:26 +01:00
int foldersCounter = 0 ;
int sharedFoldersCounter = 0 ;
int folderItemCounter = 0 ;
int othersCounter = 0 ;
2014-02-12 19:46:39 +01:00
for ( WorkspaceItem workspaceItem : children ) {
2016-05-05 11:49:36 +02:00
try {
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
/ * if ( foundFolder ! = null & & ! foundFolder . isEmpty ( ) ) {
if ( workspaceItem . getId ( ) . compareTo ( foundFolder ) = = 0 ) {
System . out . println ( " ITEM FOUND id: " + workspaceItem . getId ( ) + " , name: " + workspaceItem . getName ( ) ) ;
return ;
}
} * /
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
switch ( workspaceItem . getType ( ) ) {
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
case FOLDER :
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
WorkspaceFolder folder = ( WorkspaceFolder ) workspaceItem ;
2014-02-20 12:30:26 +01:00
2016-05-05 11:49:36 +02:00
// System.out.println(++i+") "+folder.getId() +" folder name: "+folder.getName() + " owner "+folder.getOwner() +" path: "+folder.getPath());
System . out . println ( + + i + " ) " + folder . getId ( ) + " folder name: " + folder . getName ( ) + " owner " + folder . getOwner ( ) ) ;
foldersCounter + + ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
break ;
2014-02-20 12:30:26 +01:00
2016-05-05 11:49:36 +02:00
case SHARED_FOLDER :
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
WorkspaceSharedFolder shared = ( WorkspaceSharedFolder ) workspaceItem ;
2014-02-20 12:30:26 +01:00
2016-05-05 11:49:36 +02:00
// System.out.println(++i+") "+shared.getId() +" shared folder name: "+shared.getName() + " owner "+shared.getOwner()+" isVRE "+shared.isVreFolder() +" ACLOwner: "+shared.getACLOwner()+" AclUser: "+shared.getACLUser() +" path: "+shared.getPath());
System . out . println ( + + i + " ) " + shared . getId ( ) + " shared folder name: " + shared . getName ( ) ) ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
// System.out.println(++i+") shared folder name: "+shared.getName() + " owner "+shared.getOwner().getPortalLogin());
sharedFoldersCounter + + ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
break ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
case FOLDER_ITEM :
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
FolderItem folderItem = ( FolderItem ) workspaceItem ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
// System.out.println(++i+") folderItem id: "+folderItem.getId() +", name: "+folderItem.getName() + ", own: "+folderItem.getOwner() +" path: "+folderItem.getPath());
System . out . println ( + + i + " ) folderItem id: " + folderItem . getId ( ) + " , name: " + folderItem . getName ( ) + " , own: " + folderItem . getOwner ( ) ) ;
folderItemCounter + + ;
2016-01-19 15:50:40 +01:00
2016-05-05 11:49:36 +02:00
break ;
default :
// System.out.println(++i+") DEFAULT - item id: "+workspaceItem.getId() +", name: "+workspaceItem.getName() + ", own: "+workspaceItem.getOwner());
// othersCounter++;
break ;
}
} catch ( Exception e ) {
// TODO: handle exception
2014-02-12 19:46:39 +01:00
}
2016-05-05 11:49:36 +02:00
2014-02-12 19:46:39 +01:00
}
2016-01-19 15:50:40 +01:00
2014-02-20 12:30:26 +01:00
//TEST TIME
endTime = System . currentTimeMillis ( ) ;
long difference = endTime - startTime ;
time = String . format ( " %d msc %d sec " , difference , TimeUnit . MILLISECONDS . toSeconds ( difference ) ) ;
System . out . println ( " End time is " + endTime + " difference is " + time ) ;
System . out . println ( " Folders are: " + foldersCounter ) ;
System . out . println ( " Shared Folders are: " + sharedFoldersCounter ) ;
System . out . println ( " Folder Item are: " + folderItemCounter ) ;
System . out . println ( " Others are: " + othersCounter ) ;
2014-02-12 19:46:39 +01:00
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
}