Initial import.
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/Common/storagehub-client-wrapper@169443 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
7ee02a6c3a
commit
9a7ac83e67
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>storagehub-client-wrapper</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -0,0 +1,6 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding//src/main/java=UTF-8
|
||||||
|
encoding//src/main/resources=UTF-8
|
||||||
|
encoding//src/test/java=UTF-8
|
||||||
|
encoding//src/test/resources=UTF-8
|
||||||
|
encoding/<project>=UTF-8
|
|
@ -0,0 +1,5 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.8
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeProfiles=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
resolveWorkspaceProjects=true
|
||||||
|
version=1
|
|
@ -0,0 +1 @@
|
||||||
|
${gcube.license}
|
|
@ -0,0 +1,60 @@
|
||||||
|
The gCube System - ${name}
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
${description}
|
||||||
|
|
||||||
|
|
||||||
|
${gcube.description}
|
||||||
|
|
||||||
|
${gcube.funding}
|
||||||
|
|
||||||
|
|
||||||
|
Version
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
${version} (${buildDate})
|
||||||
|
|
||||||
|
Please see the file named "changelog.xml" in this directory for the release notes.
|
||||||
|
|
||||||
|
|
||||||
|
Authors
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
* Francesco Mangiacrapa (francesco.mangiacrapa-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
|
||||||
|
|
||||||
|
Maintainers
|
||||||
|
-----------
|
||||||
|
|
||||||
|
* Francesco Mangiacrapa (francesco.mangiacrapa-AT-isti.cnr.it), Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo" - CNR, Pisa (Italy).
|
||||||
|
|
||||||
|
Download information
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Source code is available from SVN:
|
||||||
|
${scm.url}
|
||||||
|
|
||||||
|
Binaries can be downloaded from the gCube website:
|
||||||
|
${gcube.website}
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Documentation is available on-line in the gCube Wiki:
|
||||||
|
${gcube.wikiRoot}
|
||||||
|
|
||||||
|
Support
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Bugs and support requests can be reported in the gCube issue tracking tool:
|
||||||
|
${gcube.issueTracking}
|
||||||
|
|
||||||
|
|
||||||
|
Licensing
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
|
|
@ -0,0 +1,6 @@
|
||||||
|
<ReleaseNotes>
|
||||||
|
<Changeset component="org.gcube.common.storagehubwrapper.0-1-0"
|
||||||
|
date="2018-06-20">
|
||||||
|
<Change>first release</Change>
|
||||||
|
</Changeset>
|
||||||
|
</ReleaseNotes>
|
|
@ -0,0 +1,32 @@
|
||||||
|
<assembly
|
||||||
|
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||||
|
<id>servicearchive</id>
|
||||||
|
<formats>
|
||||||
|
<format>tar.gz</format>
|
||||||
|
</formats>
|
||||||
|
<baseDirectory>/</baseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<directory>${distroDirectory}</directory>
|
||||||
|
<outputDirectory>/</outputDirectory>
|
||||||
|
<useDefaultExcludes>true</useDefaultExcludes>
|
||||||
|
<includes>
|
||||||
|
<include>README</include>
|
||||||
|
<include>LICENSE</include>
|
||||||
|
<include>changelog.xml</include>
|
||||||
|
<include>profile.xml</include>
|
||||||
|
</includes>
|
||||||
|
<fileMode>755</fileMode>
|
||||||
|
<filtered>true</filtered>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
<files>
|
||||||
|
<file>
|
||||||
|
<source>target/${build.finalName}.${project.packaging}</source>
|
||||||
|
<outputDirectory>/${artifactId}</outputDirectory>
|
||||||
|
</file>
|
||||||
|
|
||||||
|
</files>
|
||||||
|
</assembly>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<ID></ID>
|
||||||
|
<Type>Library</Type>
|
||||||
|
<Profile>
|
||||||
|
<Description>${description}</Description>
|
||||||
|
<Class>Common</Class>
|
||||||
|
<Name>${artifactId}</Name>
|
||||||
|
<Version>1.0.0</Version>
|
||||||
|
<Packages>
|
||||||
|
<Software>
|
||||||
|
<Name>${artifactId}</Name>
|
||||||
|
<Version>${version}</Version>
|
||||||
|
<MavenCoordinates>
|
||||||
|
<groupId>${groupId}</groupId>
|
||||||
|
<artifactId>${artifactId}</artifactId>
|
||||||
|
<version>${version}</version>
|
||||||
|
</MavenCoordinates>
|
||||||
|
<Files>
|
||||||
|
<File>${build.finalName}.jar</File>
|
||||||
|
</Files>
|
||||||
|
</Software>
|
||||||
|
</Packages>
|
||||||
|
</Profile>
|
||||||
|
</Resource>
|
|
@ -0,0 +1,195 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<artifactId>maven-parent</artifactId>
|
||||||
|
<groupId>org.gcube.tools</groupId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<relativePath />
|
||||||
|
</parent>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>storagehub-client-wrapper</artifactId>
|
||||||
|
<version>0.1.0-SNAPSHOT</version>
|
||||||
|
<name>storagehub-client-wrapper</name>
|
||||||
|
<description>This is a wrapper of storagehub-client library. It allows to interact with storagehub in a simplified way by exposing several utilities. Moreover, It exposes object as defined in (the old) HL interfaces</description>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/common/${project.artifactId}</connection>
|
||||||
|
<developerConnection>scm:https://svn.d4science.research-infrastructures.eu/gcube/trunk/common/${project.artifactId}</developerConnection>
|
||||||
|
<url>http://svn.d4science.research-infrastructures.eu/gcube/trunk/common/${project.artifactId}</url>
|
||||||
|
|
||||||
|
</scm>
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<distroDirectory>distro</distroDirectory>
|
||||||
|
</properties>
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.distribution</groupId>
|
||||||
|
<artifactId>maven-portal-bom</artifactId>
|
||||||
|
<version>LATEST</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-lang</groupId>
|
||||||
|
<artifactId>commons-lang</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.14.8</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>storagehub-client-library</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.portal</groupId>
|
||||||
|
<artifactId>storagehub-icons-library</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.core</groupId>
|
||||||
|
<artifactId>common-encryption</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- FWS -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.resources.discovery</groupId>
|
||||||
|
<artifactId>ic-client</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.core</groupId>
|
||||||
|
<artifactId>common-scope-maps</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<!-- END FWS -->
|
||||||
|
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>org.gcube.common.portal</groupId> -->
|
||||||
|
<!-- <artifactId>portal-manager</artifactId> -->
|
||||||
|
<!-- <scope>provided</scope> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>org.gcube.dvos</groupId> -->
|
||||||
|
<!-- <artifactId>usermanagement-core</artifactId> -->
|
||||||
|
<!-- <scope>provided</scope> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
|
||||||
|
<!-- <dependency> -->
|
||||||
|
<!-- <groupId>com.liferay.portal</groupId> -->
|
||||||
|
<!-- <artifactId>portal-service</artifactId> -->
|
||||||
|
<!-- <scope>provided</scope> -->
|
||||||
|
<!-- </dependency> -->
|
||||||
|
|
||||||
|
<!-- LOGGER -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.12</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/java</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*.*</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*.*</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
|
<finalName>${artifactId}</finalName>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>${maven.compiler.source}</source>
|
||||||
|
<target>${maven.compiler.target}</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>2.5</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-profile</id>
|
||||||
|
<phase>install</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>target</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${distroDirectory}</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
<includes>
|
||||||
|
<include>profile.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>${distroDirectory}/descriptor.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>servicearchive</id>
|
||||||
|
<phase>install</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module rename-to='storagehubwrapper'>
|
||||||
|
<!-- Inherit the core Web Toolkit stuff. -->
|
||||||
|
<inherits name='com.google.gwt.user.User' />
|
||||||
|
|
||||||
|
<!-- Specify the paths for translatable code -->
|
||||||
|
<source path='client' />
|
||||||
|
<source path='shared' />
|
||||||
|
|
||||||
|
</module>
|
|
@ -0,0 +1,263 @@
|
||||||
|
package org.gcube.common.storagehubwrapper.server;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||||
|
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||||
|
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
|
||||||
|
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||||
|
import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient;
|
||||||
|
import org.gcube.common.storagehub.model.acls.ACL;
|
||||||
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
import org.gcube.common.storagehub.model.items.SharedFolder;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class StorageHubClientService.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
public class StorageHubClientService {
|
||||||
|
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(StorageHubClientService.class);
|
||||||
|
public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting";
|
||||||
|
private String scope;
|
||||||
|
private String authorizationToken;
|
||||||
|
private StorageHubClient shcClient;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new storage hub service util.
|
||||||
|
*
|
||||||
|
* @param scope the scope
|
||||||
|
* @param authorizationToken the authorization token
|
||||||
|
*/
|
||||||
|
public StorageHubClientService(String scope, String authorizationToken) {
|
||||||
|
Validate.notNull(scope, "The scope is null");
|
||||||
|
Validate.notNull(authorizationToken, "The authorizationToken is null");
|
||||||
|
this.scope = scope;
|
||||||
|
this.authorizationToken = authorizationToken;
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
shcClient = new StorageHubClient();
|
||||||
|
logger.info("Instancied the "+StorageHubClientService.class.getSimpleName()+" as: "+this.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the context providers.
|
||||||
|
*
|
||||||
|
* @param scope the scope
|
||||||
|
* @param authorizationToken the authorization token
|
||||||
|
*/
|
||||||
|
private void setContextProviders(String scope, String authorizationToken){
|
||||||
|
ScopeProvider.instance.set(scope);
|
||||||
|
SecurityTokenProvider.instance.set(authorizationToken);
|
||||||
|
logger.debug("Saved the contexts [scope: "+scope+", token: "+authorizationToken+"]");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the root.
|
||||||
|
*
|
||||||
|
* @return the root
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public FolderItem getRoot() throws Exception {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
// WorkspaceManagerClient client = AbstractPlugin.workspace().build();
|
||||||
|
// Item itemRoot = client.getWorkspace(ACCOUNTING_HL_NODE_NAME);
|
||||||
|
FolderContainer root = shcClient.getWSRoot();
|
||||||
|
return root.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the root.
|
||||||
|
*
|
||||||
|
* @return the root
|
||||||
|
*/
|
||||||
|
public Item getTrash() {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
WorkspaceManagerClient client = AbstractPlugin.workspace().build();
|
||||||
|
Item trash = client.getTrashFolder();
|
||||||
|
return trash;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the children.
|
||||||
|
*
|
||||||
|
* @param id the id
|
||||||
|
* @param excludeNodes the exclude nodes
|
||||||
|
* @return the children
|
||||||
|
*/
|
||||||
|
public List<? extends Item> getChildren(String id){
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
return shcClient.open(id).asFolder().list().withContent().getItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item.
|
||||||
|
*
|
||||||
|
* @param itemId the item id
|
||||||
|
* @return the item
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public Item getItem(String itemId) throws Exception{
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
ItemContainer<Item> itemCont = shcClient.open(itemId).asItem();//TODO
|
||||||
|
return itemCont.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the parents.
|
||||||
|
*
|
||||||
|
* @param itemId the item id
|
||||||
|
* @return the parents
|
||||||
|
*/
|
||||||
|
public List<? extends Item> getParents(String itemId) {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
List<? extends Item> toReturn = shcClient.open(itemId).asItem().getAnchestors();
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the folder.
|
||||||
|
*
|
||||||
|
* @param parentId the parent id
|
||||||
|
* @param folderName the folder name
|
||||||
|
* @param folderDescription the folder description
|
||||||
|
* @return the item
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public Item createFolder(String parentId, String folderName, String folderDescription) throws Exception {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
FolderContainer folderContainer = shcClient.open(parentId).asFolder().newFolder(folderName, folderDescription);
|
||||||
|
return getItem(folderContainer.get().getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the VRE folders id.
|
||||||
|
*
|
||||||
|
* @return the VRE folders id
|
||||||
|
*/
|
||||||
|
public String getVREFoldersId() {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
String toReturn = "";
|
||||||
|
try {
|
||||||
|
WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build();
|
||||||
|
try {
|
||||||
|
List<? extends Item> list = wsclient.getVreFolders(ACCOUNTING_HL_NODE_NAME);
|
||||||
|
toReturn =list.iterator().next().getParentId();
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.info("This user has no VRE Folders", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the user acl for folder id.
|
||||||
|
*
|
||||||
|
* @param request the request
|
||||||
|
* @param folderId the folder id
|
||||||
|
* @return the user acl for folder id
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String getUserACLForFolderId(String infrastructureName, String userName, String folderId) throws Exception {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
Item theFolder = getItem(folderId);
|
||||||
|
if (!theFolder.isShared()) {
|
||||||
|
return "OWNER";
|
||||||
|
} else {
|
||||||
|
ItemManagerClient client = AbstractPlugin.item().build();
|
||||||
|
List<ACL> acls = client.getACL(folderId);
|
||||||
|
SharedFolder sharedFolder = (SharedFolder) theFolder;
|
||||||
|
|
||||||
|
boolean found = false; //this is needed because in case o VRE Foder the permission is assigned to the group and not to the user.
|
||||||
|
for (ACL acl : acls) {
|
||||||
|
if (acl.getPricipal().compareTo(userName) == 0) {
|
||||||
|
found = true;
|
||||||
|
return acl.getAccessTypes().get(0).toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found && sharedFolder.isVreFolder()) {
|
||||||
|
for (ACL acl : acls) {
|
||||||
|
if (acl.getPricipal().startsWith(infrastructureName));
|
||||||
|
return acl.getAccessTypes().get(0).toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "UNDEFINED";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item children count.
|
||||||
|
*
|
||||||
|
* @param itemId the item id
|
||||||
|
* @return the item children count
|
||||||
|
*/
|
||||||
|
public int getItemChildrenCount(String itemId) {
|
||||||
|
setContextProviders(scope, authorizationToken);
|
||||||
|
ItemManagerClient client = AbstractPlugin.item().build();
|
||||||
|
return client.childrenCount(itemId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload file.
|
||||||
|
*
|
||||||
|
* @param folderId the folder id
|
||||||
|
* @param is the is
|
||||||
|
* @param fileName the file name
|
||||||
|
* @param fileDescription the file description
|
||||||
|
* @return the item
|
||||||
|
* @throws Exception the exception
|
||||||
|
*/
|
||||||
|
public Item uploadFile(String folderId, InputStream is, String fileName, String fileDescription) throws Exception{
|
||||||
|
|
||||||
|
try {
|
||||||
|
FileContainer fileCont = shcClient.open(folderId).asFolder().uploadFile(is, fileName, fileDescription);
|
||||||
|
return fileCont.get();
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Error during uploading the file: "+fileName+" in the folderId: "+folderId, e);
|
||||||
|
throw new Exception("Error during uploading the file: "+fileName+". Try again");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see java.lang.Object#toString()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
builder.append("StorageHubClientService [scope=");
|
||||||
|
builder.append(scope);
|
||||||
|
builder.append(", authorizationToken=");
|
||||||
|
builder.append(authorizationToken.substring(0, authorizationToken.length()-5)+"XXXXX");
|
||||||
|
builder.append(", itemManagerClient=");
|
||||||
|
builder.append(shcClient);
|
||||||
|
builder.append("]");
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.server;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.server.tohl.Workspace;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class StorageHubWrapper.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 26, 2018
|
||||||
|
*/
|
||||||
|
public class StorageHubWrapper {
|
||||||
|
|
||||||
|
private StorageHubClientService storageHubClientService;
|
||||||
|
|
||||||
|
public Object lock = new Object(); //Thread safety
|
||||||
|
|
||||||
|
private Workspace workspace = null;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new storage hub wrapper.
|
||||||
|
*
|
||||||
|
* @param scope the scope
|
||||||
|
* @param authorizationToken the authorization token
|
||||||
|
*/
|
||||||
|
public StorageHubWrapper(String scope, String authorizationToken) {
|
||||||
|
this.storageHubClientService = new StorageHubClientService(scope, authorizationToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the storage hub client service.
|
||||||
|
*
|
||||||
|
* @return the storageHubClientService
|
||||||
|
*/
|
||||||
|
public StorageHubClientService getStorageHubClientService() {
|
||||||
|
|
||||||
|
return storageHubClientService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the workspace.
|
||||||
|
*
|
||||||
|
* @return the workspace
|
||||||
|
*/
|
||||||
|
public Workspace getWorkspace(){
|
||||||
|
|
||||||
|
synchronized (lock) {
|
||||||
|
if(workspace==null){
|
||||||
|
workspace = new WorkspaceStorageHubClientService.WorkspaceStorageHubClientServiceBuilder(storageHubClientService).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
return workspace;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,868 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.server;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
import org.gcube.common.storagehub.model.items.SharedFolder;
|
||||||
|
import org.gcube.common.storagehub.model.types.GenericItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.server.converter.HLMapper;
|
||||||
|
import org.gcube.common.storagehubwrapper.server.converter.PortalMapper;
|
||||||
|
import org.gcube.common.storagehubwrapper.server.tohl.Workspace;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.ACLType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceVREFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemNotFoundException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WorkspaceFolderNotFoundException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WrongDestinationException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WrongItemTypeException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.URLFileItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.trash.WorkspaceTrashItem;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceStorageHubClientService.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
public final class WorkspaceStorageHubClientService implements Workspace{
|
||||||
|
|
||||||
|
//public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting";
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(WorkspaceStorageHubClientService.class);
|
||||||
|
private StorageHubClientService storageHubClientService;
|
||||||
|
private boolean withAccounting;
|
||||||
|
private boolean withFileDetails;
|
||||||
|
private boolean withMapProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the storage hub client service.
|
||||||
|
*
|
||||||
|
* @return the storageHubClientService
|
||||||
|
*/
|
||||||
|
public StorageHubClientService getStorageHubClientService() {
|
||||||
|
|
||||||
|
return storageHubClientService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the withAccounting
|
||||||
|
*/
|
||||||
|
public boolean isWithAccounting() {
|
||||||
|
|
||||||
|
return withAccounting;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the withFileDetails
|
||||||
|
*/
|
||||||
|
public boolean isWithFileDetails() {
|
||||||
|
|
||||||
|
return withFileDetails;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the withMapProperties
|
||||||
|
*/
|
||||||
|
public boolean isWithMapProperties() {
|
||||||
|
|
||||||
|
return withMapProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace storage hub client service.
|
||||||
|
*
|
||||||
|
* @param storageHubClientService the storage hub client service
|
||||||
|
*/
|
||||||
|
private WorkspaceStorageHubClientService(StorageHubClientService storageHubClientService) {
|
||||||
|
this.storageHubClientService = storageHubClientService;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace storage hub client service.
|
||||||
|
*
|
||||||
|
* @param storageHubClientService the storage hub client service
|
||||||
|
* @param withAccounting the with accounting
|
||||||
|
* @param withFileDetails the with file details
|
||||||
|
* @param withMapProperties the with map properties
|
||||||
|
*/
|
||||||
|
private WorkspaceStorageHubClientService(
|
||||||
|
StorageHubClientService storageHubClientService,
|
||||||
|
boolean withAccounting, boolean withFileDetails,
|
||||||
|
boolean withMapProperties) {
|
||||||
|
|
||||||
|
super();
|
||||||
|
this.storageHubClientService = storageHubClientService;
|
||||||
|
this.withAccounting = withAccounting;
|
||||||
|
this.withFileDetails = withFileDetails;
|
||||||
|
this.withMapProperties = withMapProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceStorageHubClientServiceBuilder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 22, 2018
|
||||||
|
*/
|
||||||
|
public static class WorkspaceStorageHubClientServiceBuilder{
|
||||||
|
private StorageHubClientService storageHubClientService;
|
||||||
|
private boolean withAccounting;
|
||||||
|
private boolean withFileDetails;
|
||||||
|
private boolean withMapProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace storage hub client service builder.
|
||||||
|
*
|
||||||
|
* @param storageHubClientService the storage hub client service
|
||||||
|
* @param withAccounting the with accounting
|
||||||
|
* @param withFileDetails the with file details
|
||||||
|
* @param withMapProperties the with map properties
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientServiceBuilder(
|
||||||
|
final StorageHubClientService storageHubClientService,
|
||||||
|
final boolean withAccounting, final boolean withFileDetails,
|
||||||
|
final boolean withMapProperties) {
|
||||||
|
|
||||||
|
this.storageHubClientService = storageHubClientService;
|
||||||
|
this.withAccounting = withAccounting;
|
||||||
|
this.withFileDetails = withFileDetails;
|
||||||
|
this.withMapProperties = withMapProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace storage hub client service builder.
|
||||||
|
*
|
||||||
|
* @param storageHubClientService the storage hub client service
|
||||||
|
* @param withAccounting the with accounting
|
||||||
|
* @param withFileDetails the with file details
|
||||||
|
* @param withMapProperties the with map properties
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientServiceBuilder(
|
||||||
|
final StorageHubClientService storageHubClientService) {
|
||||||
|
|
||||||
|
this.storageHubClientService = storageHubClientService;
|
||||||
|
this.withAccounting = false;
|
||||||
|
this.withFileDetails = false;
|
||||||
|
this.withMapProperties = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the with accounting.
|
||||||
|
*
|
||||||
|
* @param withAccounting the withAccounting to set
|
||||||
|
* @return the workspace storage hub client service builder
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientServiceBuilder withAccounting(final boolean withAccounting) {
|
||||||
|
|
||||||
|
this.withAccounting = withAccounting;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the with file details.
|
||||||
|
*
|
||||||
|
* @param withFileDetails the withFileDetails to set
|
||||||
|
* @return the workspace storage hub client service builder
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientServiceBuilder withFileDetails(final boolean withFileDetails) {
|
||||||
|
|
||||||
|
this.withFileDetails = withFileDetails;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the with map properties.
|
||||||
|
*
|
||||||
|
* @param withMapProperties the withMapProperties to set
|
||||||
|
* @return the workspace storage hub client service builder
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientServiceBuilder withMapProperties(final boolean withMapProperties) {
|
||||||
|
|
||||||
|
this.withMapProperties = withMapProperties;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the WorkspaceStorageHubClientService
|
||||||
|
*
|
||||||
|
* @return the workspace storage hub client service
|
||||||
|
*/
|
||||||
|
public WorkspaceStorageHubClientService build(){
|
||||||
|
return new WorkspaceStorageHubClientService(storageHubClientService,
|
||||||
|
withAccounting,
|
||||||
|
withFileDetails,
|
||||||
|
withMapProperties);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getOwner()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getOwner()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
WorkspaceFolder root = getRoot();
|
||||||
|
return root.getOwner();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getRoot()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceFolder getRoot() throws InternalErrorException{
|
||||||
|
logger.debug("Getting root");
|
||||||
|
FolderItem root;
|
||||||
|
try {
|
||||||
|
root = storageHubClientService.getRoot();
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
logger.error("Error on getting root: ", e);
|
||||||
|
throw new InternalErrorException("Sorry an error occurred when getting the workspace root. Refresh and try again");
|
||||||
|
}
|
||||||
|
WorkspaceFolder workspaceFolder = (WorkspaceFolder) HLMapper.toWorkspaceItem(root);
|
||||||
|
workspaceFolder.setRoot(true);
|
||||||
|
return workspaceFolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.Workspace#getChildren(java.lang.String)
|
||||||
|
*/
|
||||||
|
public List<? extends WorkspaceItem> getChildren(String id){
|
||||||
|
|
||||||
|
Validate.notNull(id,"The input id is null");
|
||||||
|
List<? extends Item> children = storageHubClientService.getChildren(id);
|
||||||
|
List<WorkspaceItem> toChildren = new ArrayList<WorkspaceItem>(children.size());
|
||||||
|
|
||||||
|
for (Item item : children) {
|
||||||
|
WorkspaceItem child = HLMapper.toWorkspaceItem(item);
|
||||||
|
toChildren.add(child);
|
||||||
|
}
|
||||||
|
|
||||||
|
return toChildren;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getParentsById(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<? extends WorkspaceItem> getParentsById(String id)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
Validate.notNull(id,"The input id is null");
|
||||||
|
List<? extends Item> parents = storageHubClientService.getParents(id);
|
||||||
|
List<WorkspaceItem> toParents = new ArrayList<WorkspaceItem>(parents.size());
|
||||||
|
|
||||||
|
for (Item item : parents) {
|
||||||
|
WorkspaceItem child = HLMapper.toWorkspaceItem(item);
|
||||||
|
toParents.add(child);
|
||||||
|
}
|
||||||
|
|
||||||
|
return toParents;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createFolder(java.lang.String, java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceFolder createFolder(
|
||||||
|
String name, String description, String destinationFolderId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
Validate.notNull(destinationFolderId,"The destinationFolderId id is null");
|
||||||
|
Validate.notNull(name,"The folderName is null");
|
||||||
|
Item item;
|
||||||
|
try {
|
||||||
|
item = storageHubClientService.createFolder(destinationFolderId, name, description);
|
||||||
|
return (WorkspaceFolder) HLMapper.toWorkspaceItem(item);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
logger.error("Error on creting the folde: ",e);
|
||||||
|
throw new InternalErrorException(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getItem(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem getItem(String itemId) throws ItemNotFoundException, InternalErrorException {
|
||||||
|
|
||||||
|
/*Validate.notNull(itemId,"The input itemId is null");
|
||||||
|
Item item;
|
||||||
|
try {
|
||||||
|
item = storageHubClientService.getItem(itemId);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
logger.error("Error during get item with id: "+itemId,e);
|
||||||
|
throw new InternalErrorException(e.getMessage());
|
||||||
|
}
|
||||||
|
return HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);*/
|
||||||
|
|
||||||
|
return getItem(itemId, withAccounting, withFileDetails, withMapProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.server.tohl.Workspace#getItem(java.lang.String, boolean, boolean, boolean)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem getItem(
|
||||||
|
String itemId, boolean withAccounting, boolean withFileDetails,
|
||||||
|
boolean withMapProperties)
|
||||||
|
throws ItemNotFoundException, InternalErrorException {
|
||||||
|
|
||||||
|
Validate.notNull(itemId,"The input itemId is null");
|
||||||
|
Item item;
|
||||||
|
try {
|
||||||
|
item = storageHubClientService.getItem(itemId);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
logger.error("Error during get item with id: "+itemId,e);
|
||||||
|
throw new InternalErrorException(e.getMessage());
|
||||||
|
}
|
||||||
|
return HLMapper.toWorkspaceItem(item, withAccounting, withFileDetails, withMapProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createFolder(java.lang.String, java.lang.String, java.lang.String, java.util.Map)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceFolder createFolder(
|
||||||
|
String name, String description, String destinationFolderId,
|
||||||
|
Map<String, String> properties)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
WorkspaceFolder folder = createFolder(name, description, destinationFolderId);
|
||||||
|
//TODO set gcube properties
|
||||||
|
return folder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.server.tohl.Workspace#uploadFile(java.lang.String, java.io.InputStream, java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem uploadFile(
|
||||||
|
String folderId, InputStream is, String fileName, String fileDescription)
|
||||||
|
throws InsufficientPrivilegesException,
|
||||||
|
WorkspaceFolderNotFoundException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException {
|
||||||
|
|
||||||
|
WorkspaceItem wsItem = null;
|
||||||
|
try {
|
||||||
|
Item item = storageHubClientService.uploadFile(folderId, is, fileName, fileDescription);
|
||||||
|
wsItem = HLMapper.toWorkspaceItem(item);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
logger.error("Error during upload file ",e);
|
||||||
|
throw new InternalErrorException(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return wsItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.server.tohl.Workspace#getSharedFolderMembers(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<String> getSharedFolderMembers(String folderId) throws Exception {
|
||||||
|
|
||||||
|
Validate.notNull(folderId,"The input folderid is null");
|
||||||
|
|
||||||
|
Item item;
|
||||||
|
try {
|
||||||
|
|
||||||
|
item = storageHubClientService.getItem(folderId);
|
||||||
|
|
||||||
|
}catch (Exception e) {
|
||||||
|
logger.error("Error during get item with id: "+folderId,e);
|
||||||
|
throw new ItemNotFoundException(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
Validate.notNull(item, "The item with id "+folderId+" was not found");
|
||||||
|
|
||||||
|
if(item instanceof SharedFolder){
|
||||||
|
return PortalMapper.toWorkspaceSharedFolderMembers((SharedFolder)item);
|
||||||
|
}else
|
||||||
|
throw new Exception("The item with "+folderId+ " is not a Shared Folder");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createExternalUrl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URLFileItem createExternalUrl(
|
||||||
|
String name, String description, String url, String destinationFolderId)
|
||||||
|
throws InsufficientPrivilegesException,
|
||||||
|
WorkspaceFolderNotFoundException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException, IOException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createExternalUrl(java.lang.String, java.lang.String, java.io.InputStream, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public URLFileItem createExternalUrl(
|
||||||
|
String name, String description, InputStream url,
|
||||||
|
String destinationfolderId)
|
||||||
|
throws InsufficientPrivilegesException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
WorkspaceFolderNotFoundException, IOException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#removeItem(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void removeItem(String itemId)
|
||||||
|
throws ItemNotFoundException, InternalErrorException,
|
||||||
|
InsufficientPrivilegesException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#moveItem(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem moveItem(String itemId, String destinationFolderId)
|
||||||
|
throws ItemNotFoundException, WrongDestinationException,
|
||||||
|
InsufficientPrivilegesException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#renameItem(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void renameItem(String itemId, String newName)
|
||||||
|
throws ItemNotFoundException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, InsufficientPrivilegesException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#changeDescription(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void changeDescription(String itemId, String newDescription)
|
||||||
|
throws ItemNotFoundException, InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getItemByPath(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem getItemByPath(String path)
|
||||||
|
throws ItemNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#remove(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void remove(String itemName, String folderId)
|
||||||
|
throws ItemNotFoundException, InternalErrorException,
|
||||||
|
InsufficientPrivilegesException, WrongItemTypeException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#copy(java.lang.String, java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem copy(
|
||||||
|
String itemId, String newName, String destinationFolderId)
|
||||||
|
throws ItemNotFoundException, WrongDestinationException,
|
||||||
|
InternalErrorException, ItemAlreadyExistException,
|
||||||
|
InsufficientPrivilegesException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#copy(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem copy(String itemId, String destinationFolderId)
|
||||||
|
throws ItemNotFoundException, WrongDestinationException,
|
||||||
|
InternalErrorException, ItemAlreadyExistException,
|
||||||
|
InsufficientPrivilegesException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#exists(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean exists(String name, String folderId)
|
||||||
|
throws InternalErrorException, ItemNotFoundException,
|
||||||
|
WrongItemTypeException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#exists(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean exists(String itemId)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#find(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem find(String name, String folderId)
|
||||||
|
throws InternalErrorException, ItemNotFoundException,
|
||||||
|
WrongItemTypeException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#find(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem find(String path)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#searchByName(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WorkspaceItem> searchByName(String name, String folderId)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#searchByMimeType(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WorkspaceItem> searchByMimeType(String mimeType)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getFolderItems(org.gcube.common.storagehub.model.types.GenericItemType)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WorkspaceItem> getFolderItems(GenericItemType type)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createSharedFolder(java.lang.String, java.lang.String, java.util.List, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceSharedFolder createSharedFolder(
|
||||||
|
String name, String description, List<String> users,
|
||||||
|
String destinationFolderId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createSharedFolder(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceSharedFolder createSharedFolder(
|
||||||
|
String name, String description, String groupId,
|
||||||
|
String destinationFolderId, String displayName, boolean isVREFolder)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#shareFolder(java.util.List, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceSharedFolder shareFolder(
|
||||||
|
List<String> users, String destinationFolderId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#share(java.util.List, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceSharedFolder share(List<String> users, String itemId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createGcubeItem(java.lang.String, java.lang.String, java.util.List, java.lang.String, java.lang.String, java.util.Map, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem createGcubeItem(
|
||||||
|
String name, String description, List<String> scopes, String creator,
|
||||||
|
String itemType, Map<String, String> properties,
|
||||||
|
String destinationFolderId)
|
||||||
|
throws InsufficientPrivilegesException,
|
||||||
|
WorkspaceFolderNotFoundException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#unshare(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceItem unshare(String itemId)
|
||||||
|
throws InternalErrorException, ItemNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getTrash()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceTrashItem getTrash()
|
||||||
|
throws InternalErrorException, ItemNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getMySpecialFolders()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceFolder getMySpecialFolders()
|
||||||
|
throws InternalErrorException, ItemNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#searchByProperties(java.util.List)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WorkspaceItem> searchByProperties(List<String> properties)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getVREFolderByScope(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceSharedFolder getVREFolderByScope(String scope)
|
||||||
|
throws ItemNotFoundException, InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getDiskUsage()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public long getDiskUsage()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getTotalItems()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int getTotalItems()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#removeItems(java.lang.String[])
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, String> removeItems(String... id)
|
||||||
|
throws ItemNotFoundException, InternalErrorException,
|
||||||
|
InsufficientPrivilegesException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#createVREFolder(java.lang.String, java.lang.String, java.lang.String, org.gcube.portal.storagehubwrapper.shared.ACLType)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceVREFolder createVREFolder(
|
||||||
|
String scope, String description, String displayName, ACLType privilege)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getGroup(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getGroup(String groupId)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#isGroup(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean isGroup(String groupId)
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.Workspace#getPublicFolders()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WorkspaceItem> getPublicFolders()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,269 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.server.converter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.model.Metadata;
|
||||||
|
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.ExternalURL;
|
||||||
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.GenericFileItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
import org.gcube.common.storagehub.model.items.PDFFileItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.SharedFolder;
|
||||||
|
import org.gcube.common.storagehub.model.items.VreFolder;
|
||||||
|
import org.gcube.common.storagehub.model.items.nodes.Accounting;
|
||||||
|
import org.gcube.common.storagehub.model.items.nodes.Content;
|
||||||
|
import org.gcube.common.storagehub.model.items.nodes.ImageContent;
|
||||||
|
import org.gcube.common.storagehub.model.items.nodes.PDFContent;
|
||||||
|
import org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.FileItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.AccountingEntry;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.FileItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.ImageFile;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.PDFFile;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.PropertyMap;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.URLFile;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceSharedFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceVREFolder;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class HLMapper.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
public class HLMapper {
|
||||||
|
|
||||||
|
public static Function<org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry, AccountingEntry> toAccountingEntry = new Function<org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry, AccountingEntry>() {
|
||||||
|
|
||||||
|
public AccountingEntry apply(org.gcube.common.storagehub.model.items.nodes.accounting.AccountEntry accountingEntry) {
|
||||||
|
|
||||||
|
return new AccountingEntry(
|
||||||
|
accountingEntry.getUser(),
|
||||||
|
accountingEntry.getDate(),
|
||||||
|
accountingEntry.getType().name(),
|
||||||
|
accountingEntry.getVersion(),
|
||||||
|
accountingEntry.getPrimaryType());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To workspace item.
|
||||||
|
*
|
||||||
|
* @param <T> the generic type
|
||||||
|
* @param item the item
|
||||||
|
* @return the t
|
||||||
|
*/
|
||||||
|
public static<T extends WorkspaceItem> T toWorkspaceItem(Item item){
|
||||||
|
|
||||||
|
return toWorkspaceItem(item, false, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To workspace item.
|
||||||
|
*
|
||||||
|
* @param <T> the generic type
|
||||||
|
* @param item the item
|
||||||
|
* @return the t
|
||||||
|
*/
|
||||||
|
public static<T extends WorkspaceItem> T toWorkspaceItem(Item item, boolean withAccounting, boolean withFileDetails, boolean withMapProperties){
|
||||||
|
|
||||||
|
List<org.gcube.common.storagehubwrapper.shared.tohl.AccountingEntry> accountingEntries = null;
|
||||||
|
|
||||||
|
if(withAccounting){
|
||||||
|
Accounting accounting = item.getAccounting();
|
||||||
|
if(accounting!=null && accounting.getEntries().size()>0){
|
||||||
|
accountingEntries = new ArrayList<org.gcube.common.storagehubwrapper.shared.tohl.AccountingEntry>(accounting.getEntries().size());
|
||||||
|
for (AccountEntry ae : accounting.getEntries()) {
|
||||||
|
accountingEntries.add(toAccountingEntry.apply(ae));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
org.gcube.common.storagehubwrapper.shared.tohl.impl.WorkspaceItem theItem = null;
|
||||||
|
WorkspaceItemType type = null;
|
||||||
|
boolean isFolder = false;
|
||||||
|
|
||||||
|
//THE ITEM IS A KIND OF FOLDER
|
||||||
|
if (item instanceof FolderItem){
|
||||||
|
isFolder = true;
|
||||||
|
FolderItem folderItem = (FolderItem) item; //??
|
||||||
|
theItem = new WorkspaceFolder();
|
||||||
|
type = WorkspaceItemType.FOLDER;
|
||||||
|
if (item instanceof SharedFolder || item instanceof VreFolder) {
|
||||||
|
SharedFolder sharedfolder = (SharedFolder) item; //??
|
||||||
|
theItem = new WorkspaceSharedFolder();
|
||||||
|
type = WorkspaceItemType.SHARED_FOLDER;
|
||||||
|
if (sharedfolder.isVreFolder()){
|
||||||
|
VreFolder vreFolder = (VreFolder) item;
|
||||||
|
theItem = new WorkspaceVREFolder();
|
||||||
|
((WorkspaceSharedFolder) theItem).setVreFolder(true);
|
||||||
|
type = WorkspaceItemType.VRE_FOLDER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//THE ITEM IS A KIND OF FILE
|
||||||
|
if(item instanceof AbstractFileItem){
|
||||||
|
theItem = new FileItem();
|
||||||
|
type = WorkspaceItemType.FILE_ITEM;
|
||||||
|
FileItemType fileItemType = null;
|
||||||
|
if(item instanceof ExternalURL){
|
||||||
|
ExternalURL eURL = (ExternalURL) item; //??
|
||||||
|
theItem = new URLFile();
|
||||||
|
fileItemType = FileItemType.URL_DOCUMENT;
|
||||||
|
}else if(item instanceof GenericFileItem){
|
||||||
|
GenericFileItem gFI = (GenericFileItem) item; //??
|
||||||
|
fileItemType = FileItemType.DOCUMENT;
|
||||||
|
}else if(item instanceof PDFFileItem){
|
||||||
|
theItem = new PDFFile();
|
||||||
|
fileItemType = FileItemType.PDF_DOCUMENT;
|
||||||
|
if(withFileDetails){
|
||||||
|
PDFFileItem pdfFI = (PDFFileItem) item;
|
||||||
|
PDFContent pdfContent = pdfFI.getContent();
|
||||||
|
PDFFile thePDFFileItem = (PDFFile) theItem;
|
||||||
|
thePDFFileItem.setNumberOfPages(pdfContent.getNumberOfPages());
|
||||||
|
thePDFFileItem.setProducer(pdfContent.getProducer());
|
||||||
|
thePDFFileItem.setVersion(pdfContent.getVersion());
|
||||||
|
thePDFFileItem.setTitle(pdfContent.getTitle());
|
||||||
|
thePDFFileItem.setAuthor(pdfContent.getAuthor());
|
||||||
|
}
|
||||||
|
}else if(item instanceof org.gcube.common.storagehub.model.items.ImageFile){
|
||||||
|
theItem = new ImageFile();
|
||||||
|
fileItemType = FileItemType.IMAGE_DOCUMENT;
|
||||||
|
if(withFileDetails){
|
||||||
|
org.gcube.common.storagehub.model.items.ImageFile imgFI = (org.gcube.common.storagehub.model.items.ImageFile) item; //??
|
||||||
|
ImageFile theImageFileItem = (ImageFile) theItem;
|
||||||
|
ImageContent content = imgFI.getContent();
|
||||||
|
theImageFileItem.setHeight(content.getHeight());
|
||||||
|
theImageFileItem.setWidth(content.getWidth());
|
||||||
|
theImageFileItem.setThumbnailWidth(content.getThumbnailHeight());
|
||||||
|
theImageFileItem.setThumbnailHeight(content.getThumbnailHeight());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AbstractFileItem itemAb = (AbstractFileItem) item;
|
||||||
|
Content aC = itemAb.getContent();
|
||||||
|
FileItem theFileItem = (FileItem) theItem;
|
||||||
|
theFileItem.setMimeType(aC.getMimeType());
|
||||||
|
theFileItem.setSize(aC.getSize());
|
||||||
|
theFileItem.setFileItemType(fileItemType);
|
||||||
|
|
||||||
|
//TODO ADD VERSION NAME
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//ADDING (GCUBE) PROPERTIES
|
||||||
|
PropertyMap pm = null;
|
||||||
|
if(withMapProperties){
|
||||||
|
Metadata metadata = item.getPropertyMap();
|
||||||
|
if(metadata!=null){
|
||||||
|
pm = new PropertyMap(metadata.getValues());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//TRASH //TODO
|
||||||
|
|
||||||
|
if(theItem.isTrashed())
|
||||||
|
type = WorkspaceItemType.TRASH_ITEM;
|
||||||
|
|
||||||
|
theItem.setId(item.getId());
|
||||||
|
theItem.setName(item.getName());
|
||||||
|
theItem.setPath(item.getPath());
|
||||||
|
theItem.setParentId(item.getParentId());
|
||||||
|
theItem.setTrashed(item.isTrashed());
|
||||||
|
theItem.setShared(item.isShared());
|
||||||
|
theItem.setLocked(item.isLocked());
|
||||||
|
theItem.setTitle(item.getTitle());
|
||||||
|
theItem.setDescription(item.getDescription());
|
||||||
|
theItem.setLastModifiedBy(item.getLastModifiedBy());
|
||||||
|
theItem.setLastModificationTime(item.getLastModificationTime());
|
||||||
|
theItem.setCreationTime(item.getCreationTime());
|
||||||
|
theItem.setOwner(item.getOwner());
|
||||||
|
theItem.setHidden(item.isHidden());
|
||||||
|
theItem.setAccounting(accountingEntries);
|
||||||
|
theItem.setType(type);
|
||||||
|
theItem.setFolder(isFolder);
|
||||||
|
theItem.setRoot(false);
|
||||||
|
theItem.setPropertyMap(pm);
|
||||||
|
|
||||||
|
return (T) theItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public static Function<Item, ? extends WorkspaceItem> toWorkspaceItem = new Function<Item, WorkspaceItem>() {
|
||||||
|
|
||||||
|
public WorkspaceItem apply(Item item) {
|
||||||
|
|
||||||
|
Accounting accounting = item.getAccounting();
|
||||||
|
List<AccountingEntry> accountingEntries = null;
|
||||||
|
if(accounting!=null && accounting.getEntries().size()>0){
|
||||||
|
accountingEntries = new ArrayList<AccountingEntry>(accounting.getEntries().size());
|
||||||
|
for (AccountEntry ae : accounting.getEntries()) {
|
||||||
|
//TODO
|
||||||
|
accountingEntries.add(toAccountingEntry.apply(ae));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkspaceItemImpl theItem = null;
|
||||||
|
WorkspaceItemType type = null;
|
||||||
|
boolean isFolder = false;
|
||||||
|
|
||||||
|
//IS THE ITEM A FOLDER TYPE?
|
||||||
|
if (item instanceof FolderItem){
|
||||||
|
isFolder = true;
|
||||||
|
FolderItem folderItem = (FolderItem) item; //??
|
||||||
|
theItem = new WorkspaceFolderImpl();
|
||||||
|
type = org.gcube.portal.storagehubwrapper.shared.tohl.WorkspaceItemType.FOLDER_ITEM;
|
||||||
|
if (item instanceof SharedFolder || item instanceof VreFolder) {
|
||||||
|
SharedFolder sharedfolder = (SharedFolder) item; //??
|
||||||
|
theItem = new WorkspaceSharedFolderImpl();
|
||||||
|
type = org.gcube.portal.storagehubwrapper.shared.tohl.WorkspaceItemType.SHARED_FOLDER;
|
||||||
|
if (sharedfolder.isVreFolder()){
|
||||||
|
VreFolder vreFolder = (VreFolder) item;
|
||||||
|
theItem = new WorkspaceVREFolderImpl();
|
||||||
|
type = org.gcube.portal.storagehubwrapper.shared.tohl.WorkspaceItemType.VRE_FOLDER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(theItem.isTrashed())
|
||||||
|
type = org.gcube.portal.storagehubwrapper.shared.tohl.WorkspaceItemType.TRASH_ITEM;
|
||||||
|
|
||||||
|
theItem.setId(item.getId());
|
||||||
|
theItem.setName(item.getName());
|
||||||
|
theItem.setPath(item.getPath());
|
||||||
|
theItem.setParentId(item.getParentId());
|
||||||
|
theItem.setTrashed(item.isTrashed());
|
||||||
|
theItem.setShared(item.isShared());
|
||||||
|
theItem.setLocked(item.isLocked());
|
||||||
|
theItem.setTitle(item.getTitle());
|
||||||
|
theItem.setDescription(item.getDescription());
|
||||||
|
theItem.setLastModifiedBy(item.getLastModifiedBy());
|
||||||
|
theItem.setLastModificationTime(item.getLastModificationTime());
|
||||||
|
theItem.setCreationTime(item.getCreationTime());
|
||||||
|
theItem.setOwner(item.getOwner());
|
||||||
|
theItem.setHidden(item.isHidden());
|
||||||
|
theItem.setAccounting(accountingEntries);
|
||||||
|
theItem.setType(type);
|
||||||
|
theItem.setFolder(isFolder);
|
||||||
|
theItem.setRoot(false);
|
||||||
|
|
||||||
|
return theItem;
|
||||||
|
}
|
||||||
|
};*/
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.server.converter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.model.Metadata;
|
||||||
|
import org.gcube.common.storagehub.model.items.SharedFolder;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class PortalMapper.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 26, 2018
|
||||||
|
*/
|
||||||
|
public class PortalMapper {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(PortalMapper.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To workspace shared folder members.
|
||||||
|
*
|
||||||
|
* @param sharedfolder the sharedfolder
|
||||||
|
* @return the list
|
||||||
|
*/
|
||||||
|
public static List<String> toWorkspaceSharedFolderMembers(SharedFolder sharedfolder){
|
||||||
|
|
||||||
|
Metadata users = sharedfolder.getUsers();
|
||||||
|
Map<String, Object> mapMember = users.getValues();
|
||||||
|
List<String> listUsers = new ArrayList<String>(mapMember.size());
|
||||||
|
listUsers.addAll(mapMember.keySet());
|
||||||
|
logger.debug("Returning "+listUsers.size()+" member/s for sharedFolder with id: "+sharedfolder.getId());
|
||||||
|
return listUsers;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,625 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.server.tohl;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.model.types.GenericItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.ACLType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceVREFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InsufficientPrivilegesException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemAlreadyExistException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemNotFoundException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WorkspaceFolderNotFoundException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WrongDestinationException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.WrongItemTypeException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.URLFileItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.trash.WorkspaceTrashItem;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface Workspace.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*
|
||||||
|
* Represents a HL user workspace.
|
||||||
|
*/
|
||||||
|
public interface Workspace{
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the owner.
|
||||||
|
*
|
||||||
|
* @return the owner
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public String getOwner() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the workspace root.
|
||||||
|
*
|
||||||
|
* @return the root.
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public WorkspaceFolder getRoot() throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the children.
|
||||||
|
*
|
||||||
|
* @param id the id
|
||||||
|
* @return the children
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public List<? extends WorkspaceItem> getChildren(String id);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the parents by id.
|
||||||
|
*
|
||||||
|
* @param id the id
|
||||||
|
* @return the parents by id
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public List<? extends WorkspaceItem> getParentsById(String id) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the item with the specified id.
|
||||||
|
*
|
||||||
|
* @param itemId the item id.
|
||||||
|
* @return the item.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public WorkspaceItem getItem(String itemId) throws ItemNotFoundException, InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the item with the specified id.
|
||||||
|
*
|
||||||
|
* @param itemId the item id.
|
||||||
|
* @param withAccounting the with accounting
|
||||||
|
* @param withFileDetails the with file details
|
||||||
|
* @param withMapProperties the with map properties
|
||||||
|
* @return the item.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
//OK
|
||||||
|
public WorkspaceItem getItem(String itemId, boolean withAccounting, boolean withFileDetails, boolean withMapProperties) throws ItemNotFoundException, InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new folder with specified name.
|
||||||
|
* The new folder is created into the specified folder.
|
||||||
|
*
|
||||||
|
* @param name the folder name.
|
||||||
|
* @param description the folder description.
|
||||||
|
* @param destinationFolderId the destination folder.
|
||||||
|
* @return the new folder.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws ItemAlreadyExistException if an item with the same exist in the destination folder.
|
||||||
|
* @throws WrongDestinationException if the destination item is not a folder.
|
||||||
|
* @throws ItemNotFoundException if the destination folder has not been found.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found.
|
||||||
|
* @throws Exception the exception
|
||||||
|
*/
|
||||||
|
public WorkspaceFolder createFolder(String name, String description, String destinationFolderId) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException, Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new folder with properties.
|
||||||
|
*
|
||||||
|
* @param name the name
|
||||||
|
* @param description the description
|
||||||
|
* @param destinationFolderId the destination folder id
|
||||||
|
* @param properties the properties
|
||||||
|
* @return the new folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceFolder createFolder(String name, String description, String destinationFolderId, Map<String, String> properties) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload file.
|
||||||
|
*
|
||||||
|
* @param folderId the folder id
|
||||||
|
* @param inputStream the input stream
|
||||||
|
* @param fileName the file name
|
||||||
|
* @param fileDescription the file description
|
||||||
|
* @return the item
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
*/
|
||||||
|
public WorkspaceItem uploadFile(String folderId, InputStream inputStream, String fileName, String fileDescription) throws InsufficientPrivilegesException, WorkspaceFolderNotFoundException, InternalErrorException, ItemAlreadyExistException, WrongDestinationException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the shared folder members.
|
||||||
|
*
|
||||||
|
* @param folderid the folderid
|
||||||
|
* @return the shared folder members
|
||||||
|
* @throws Exception the exception
|
||||||
|
*/
|
||||||
|
public List<String> getSharedFolderMembers(String folderid) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new External URL into a folder.
|
||||||
|
*
|
||||||
|
* @param name the external URL name.
|
||||||
|
* @param description the external URL description.
|
||||||
|
* @param url the external URL value.
|
||||||
|
* @param destinationFolderId the destination folder.
|
||||||
|
* @return the new external URL.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if a folder item with same name already exist.
|
||||||
|
* @throws WrongDestinationException if the destination type is not a folder.
|
||||||
|
* @throws IOException Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
public URLFileItem createExternalUrl(String name, String description, String url, String destinationFolderId) throws InsufficientPrivilegesException, WorkspaceFolderNotFoundException, InternalErrorException, ItemAlreadyExistException, WrongDestinationException, IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a Bookmark.
|
||||||
|
*
|
||||||
|
* @param name the name
|
||||||
|
* @param description the description
|
||||||
|
* @param url the url
|
||||||
|
* @param destinationfolderId the destinationfolder id
|
||||||
|
* @return the external url
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
* @throws IOException Signals that an I/O exception has occurred.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Create a new External URL into a folder.
|
||||||
|
* @param name the external URL name.
|
||||||
|
* @param description the external URL description.
|
||||||
|
* @param url the external URL.
|
||||||
|
* @param destinationfolderId the destination folder.
|
||||||
|
* @return the new external URL.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if a folder item with same name already exist.
|
||||||
|
* @throws WrongDestinationException if the destination type is not a folder.
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public URLFileItem createExternalUrl(String name, String description, InputStream url, String destinationfolderId) throws InsufficientPrivilegesException, InternalErrorException, ItemAlreadyExistException, WrongDestinationException, WorkspaceFolderNotFoundException, IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove an item.
|
||||||
|
* @param itemId the item to remove.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
*/
|
||||||
|
public void removeItem(String itemId) throws ItemNotFoundException, InternalErrorException, InsufficientPrivilegesException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move a workspaceItem to a specified destination.
|
||||||
|
* @param itemId the item to move.
|
||||||
|
* @param destinationFolderId the destination folder.
|
||||||
|
* @return the moved workspaceItem
|
||||||
|
* @throws ItemNotFoundException if the specified item has not been found.
|
||||||
|
* @throws WrongDestinationException if the specified destination has not been found.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if the destination folder have a children with same name.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder is not found.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem moveItem(String itemId, String destinationFolderId) throws ItemNotFoundException, WrongDestinationException, InsufficientPrivilegesException, InternalErrorException, ItemAlreadyExistException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rename an item.
|
||||||
|
*
|
||||||
|
* @param itemId the item id.
|
||||||
|
* @param newName the new name.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
*/
|
||||||
|
public void renameItem(String itemId, String newName) throws ItemNotFoundException, InternalErrorException, ItemAlreadyExistException, InsufficientPrivilegesException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change an item description.
|
||||||
|
* @param itemId the item to update.
|
||||||
|
* @param newDescription the new item description.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public void changeDescription(String itemId, String newDescription) throws ItemNotFoundException, InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the item with the specified path.
|
||||||
|
*
|
||||||
|
* @param path the item path.
|
||||||
|
* @return the item.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem getItemByPath(String path) throws ItemNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove an item from a folder.
|
||||||
|
* @param itemName the item name.
|
||||||
|
* @param folderId the folder id.
|
||||||
|
* @throws ItemNotFoundException if the folder has not been found.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws WrongItemTypeException if the specified folder is neither a workspace nor a folder.
|
||||||
|
*/
|
||||||
|
public void remove(String itemName, String folderId) throws ItemNotFoundException, InternalErrorException, InsufficientPrivilegesException, WrongItemTypeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy an item from a folder to another folder.
|
||||||
|
*
|
||||||
|
* @param itemId the item to copy.
|
||||||
|
* @param newName the item new name.
|
||||||
|
* @param destinationFolderId the destination folder id.
|
||||||
|
* @return the item copy.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws WrongDestinationException if the destination have a wrong type.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if an item with same name already exist in the destination folder.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem copy(String itemId, String newName, String destinationFolderId) throws ItemNotFoundException, WrongDestinationException, InternalErrorException, ItemAlreadyExistException, InsufficientPrivilegesException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy an item from a folder to another folder. The item copy have the same name of the original.
|
||||||
|
*
|
||||||
|
* @param itemId the item to copy.
|
||||||
|
* @param destinationFolderId the destination folder id, can't be the same of the item (can't have the same name).
|
||||||
|
* @return the item copy.
|
||||||
|
* @throws ItemNotFoundException if the item has not been found.
|
||||||
|
* @throws WrongDestinationException if the destination have a wrong type.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
* @throws ItemAlreadyExistException if an item with same name already exist in the destination folder.
|
||||||
|
* @throws InsufficientPrivilegesException if the user don't have sufficient privileges to perform this operation.
|
||||||
|
* @throws WorkspaceFolderNotFoundException if the destination folder has not been found.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem copy(String itemId, String destinationFolderId) throws ItemNotFoundException, WrongDestinationException, InternalErrorException, ItemAlreadyExistException, InsufficientPrivilegesException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an item with the specified name exists in the specified folder.
|
||||||
|
* @param name the name to check.
|
||||||
|
* @param folderId the folder where to search the item.
|
||||||
|
* @return <code>true</code> if the item exists, <code>false</code> otherwise.
|
||||||
|
* @throws InternalErrorException if an error occurs.
|
||||||
|
* @throws ItemNotFoundException if the folder has not been found.
|
||||||
|
* @throws WrongItemTypeException if the folderId referrer to an item with type different from Workspace or folder.
|
||||||
|
*/
|
||||||
|
public boolean exists(String name, String folderId) throws InternalErrorException, ItemNotFoundException, WrongItemTypeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an item with the specified id exists.
|
||||||
|
* @param itemId the item id to check.
|
||||||
|
* @return <code>true</code> if the item exists, <code>false</code> otherwise.
|
||||||
|
* @throws InternalErrorException if an error occurs.
|
||||||
|
*/
|
||||||
|
public boolean exists(String itemId) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an item with the specified name in the specified folder.
|
||||||
|
* @param name the item name to find.
|
||||||
|
* @param folderId the folder where to search the item.
|
||||||
|
* @return the item if the item is found, <code>null</code> otherwise.
|
||||||
|
* @throws InternalErrorException if an error occurs.
|
||||||
|
* @throws ItemNotFoundException if the folder has not been found.
|
||||||
|
* @throws WrongItemTypeException if the folderId referrer to an item with type different from Workspace or folder.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem find(String name, String folderId) throws InternalErrorException, ItemNotFoundException, WrongItemTypeException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find an item using the specified path.
|
||||||
|
*
|
||||||
|
* @param path the item path.
|
||||||
|
* @return the item if the item is found, <code>null</code> otherwise.
|
||||||
|
* @throws InternalErrorException if an error occurs.
|
||||||
|
*/
|
||||||
|
public WorkspaceItem find(String path) throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search by Name.
|
||||||
|
*
|
||||||
|
* @param name the name
|
||||||
|
* @param folderId the folder id
|
||||||
|
* @return a list of SearchItem
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<WorkspaceItem> searchByName(String name, String folderId) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search By MimeType.
|
||||||
|
*
|
||||||
|
* @param mimeType the mime type
|
||||||
|
* @return a list of SearchFolderItem
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<WorkspaceItem> searchByMimeType(String mimeType)
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get items by type.
|
||||||
|
*
|
||||||
|
* @param type the type
|
||||||
|
* @return a list of SearchItem
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<WorkspaceItem> getFolderItems(GenericItemType type) throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a shared folder with a list of users.
|
||||||
|
*
|
||||||
|
* @param name the name
|
||||||
|
* @param description the description
|
||||||
|
* @param users A list of portal logins
|
||||||
|
* @param destinationFolderId the destination folder id
|
||||||
|
* @return the shared folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder createSharedFolder(String name, String description,
|
||||||
|
List<String> users, String destinationFolderId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a shared folder associated with a groupId.
|
||||||
|
*
|
||||||
|
* @param name the name of the folder
|
||||||
|
* @param description the description
|
||||||
|
* @param groupId an existing groupId to associate with the folder
|
||||||
|
* @param destinationFolderId the destination folder id
|
||||||
|
* @param displayName a friendly name for the folder
|
||||||
|
* @param isVREFolder a flag to indicate the folder is a VRE Folder
|
||||||
|
* @return the shared folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder createSharedFolder(String name, String description,
|
||||||
|
String groupId, String destinationFolderId, String displayName, boolean isVREFolder)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared an exist {@link WorkspaceFolder} with a list of users.
|
||||||
|
*
|
||||||
|
* @param users A list of portal logins.
|
||||||
|
* @param destinationFolderId the destination folder id
|
||||||
|
* @return the shared folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder shareFolder(List<String> users, String destinationFolderId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared an exist {@link WorkspaceFolder} with a list of users.
|
||||||
|
*
|
||||||
|
* @param users A list of portal logins.
|
||||||
|
* @param itemId the item id
|
||||||
|
* @return the shared folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder share(List<String> users, String itemId)
|
||||||
|
throws InternalErrorException, InsufficientPrivilegesException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException,
|
||||||
|
ItemNotFoundException, WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a GCubeItem.
|
||||||
|
*
|
||||||
|
* @param name the name
|
||||||
|
* @param description the description
|
||||||
|
* @param scopes the scopes
|
||||||
|
* @param creator the creator
|
||||||
|
* @param itemType the item type
|
||||||
|
* @param properties the properties
|
||||||
|
* @param destinationFolderId the destination folder id
|
||||||
|
* @return a GCubeItem
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceItem createGcubeItem(String name, String description,
|
||||||
|
List<String> scopes, String creator, String itemType, Map<String, String> properties,
|
||||||
|
String destinationFolderId) throws InsufficientPrivilegesException,
|
||||||
|
WorkspaceFolderNotFoundException, InternalErrorException,
|
||||||
|
ItemAlreadyExistException, WrongDestinationException, ItemNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unshare a shared item.
|
||||||
|
*
|
||||||
|
* @param itemId the item id
|
||||||
|
* @return the workspace item
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceItem unshare(String itemId) throws InternalErrorException, ItemNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Trash Folder.
|
||||||
|
*
|
||||||
|
* @return the trash folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceTrashItem getTrash() throws InternalErrorException, ItemNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get MySpecialFolders.
|
||||||
|
*
|
||||||
|
* @return my special folders
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceFolder getMySpecialFolders() throws InternalErrorException, ItemNotFoundException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search By Properties.
|
||||||
|
*
|
||||||
|
* @param properties the properties
|
||||||
|
* @return a list of WorkspaceItem
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<WorkspaceItem> searchByProperties(List<String> properties)
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get VRE Folder By Scope.
|
||||||
|
*
|
||||||
|
* @param scope the scope
|
||||||
|
* @return the VRE folder associated to such scope
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder getVREFolderByScope(String scope) throws ItemNotFoundException, InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the disk usage of a worskpace.
|
||||||
|
*
|
||||||
|
* @return the disk usage
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public long getDiskUsage() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the total number of items in a workspace.
|
||||||
|
*
|
||||||
|
* @return the numer of total Items
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public int getTotalItems() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a list of items identified by ids.
|
||||||
|
*
|
||||||
|
* @param id the id
|
||||||
|
* @return a map of errors: Map<id, error>
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
*/
|
||||||
|
public Map<String, String> removeItems(String... id) throws ItemNotFoundException,
|
||||||
|
InternalErrorException, InsufficientPrivilegesException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a VRE folder.
|
||||||
|
*
|
||||||
|
* @param scope the scope
|
||||||
|
* @param description the description
|
||||||
|
* @param displayName the display name
|
||||||
|
* @param privilege the privilege
|
||||||
|
* @return a new VRE folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws InsufficientPrivilegesException the insufficient privileges exception
|
||||||
|
* @throws ItemAlreadyExistException the item already exist exception
|
||||||
|
* @throws WrongDestinationException the wrong destination exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
|
||||||
|
*/
|
||||||
|
public WorkspaceVREFolder createVREFolder(String scope, String description,
|
||||||
|
String displayName, ACLType privilege) throws InternalErrorException,
|
||||||
|
InsufficientPrivilegesException, ItemAlreadyExistException,
|
||||||
|
WrongDestinationException, ItemNotFoundException,
|
||||||
|
WorkspaceFolderNotFoundException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get group name by group id.
|
||||||
|
*
|
||||||
|
* @param groupId the group id
|
||||||
|
* @return the group name
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
String getGroup(String groupId) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a user is a group.
|
||||||
|
*
|
||||||
|
* @param groupId the group id
|
||||||
|
* @return true if the user is a group, false otherwise
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
boolean isGroup(String groupId) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get public folders.
|
||||||
|
*
|
||||||
|
* @return a list of public folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
List<WorkspaceItem> getPublicFolders() throws InternalErrorException;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Enum ACLType.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public enum ACLType {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Access denied to user.
|
||||||
|
*/
|
||||||
|
NONE,
|
||||||
|
/**
|
||||||
|
* Allow users to only read files.
|
||||||
|
*/
|
||||||
|
READ_ONLY,
|
||||||
|
/**
|
||||||
|
* Allow users to create, edit and delete their own files.
|
||||||
|
*/
|
||||||
|
WRITE_OWNER,
|
||||||
|
/**
|
||||||
|
* Allow users to create, edit and delete files of everyone in the share.
|
||||||
|
*/
|
||||||
|
WRITE_ALL,
|
||||||
|
/**
|
||||||
|
* All privileges.
|
||||||
|
*/
|
||||||
|
ADMINISTRATOR;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface AccountingEntry.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface AccountingEntry {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the user.
|
||||||
|
*
|
||||||
|
* @return the user
|
||||||
|
*/
|
||||||
|
String getUser();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the date.
|
||||||
|
*
|
||||||
|
* @return the date
|
||||||
|
*/
|
||||||
|
Calendar getDate();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the entry type.
|
||||||
|
*
|
||||||
|
* @return the entry type
|
||||||
|
*/
|
||||||
|
String getEntryType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the version.
|
||||||
|
*
|
||||||
|
* @return the version
|
||||||
|
*/
|
||||||
|
String getVersion();
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface Properties.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface Properties {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get ID.
|
||||||
|
*
|
||||||
|
* @return the properties id.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public String getId() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get property value.
|
||||||
|
*
|
||||||
|
* @param propertyName the property name.
|
||||||
|
* @return the property value.
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public String getPropertyValue(String propertyName) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Properties.
|
||||||
|
*
|
||||||
|
* @return the properties map.
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public Map<String, String> getProperties() throws InternalErrorException;
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Add properties to item.
|
||||||
|
// *
|
||||||
|
// * @param properties a map of properties
|
||||||
|
// * @throws InternalErrorException the internal error exception
|
||||||
|
// */
|
||||||
|
// public void addProperties(Map<String, String> properties) throws InternalErrorException;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Save modified properties.
|
||||||
|
// *
|
||||||
|
// * @throws InternalErrorException the internal error exception
|
||||||
|
// */
|
||||||
|
// public void update() throws InternalErrorException;
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * Check if the item has a given property.
|
||||||
|
// *
|
||||||
|
// * @param property the property
|
||||||
|
// * @return true, if successful
|
||||||
|
// * @throws InternalErrorException the internal error exception
|
||||||
|
// */
|
||||||
|
// public boolean hasProperty(String property) throws InternalErrorException;
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceFolder extends WorkspaceItem {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,179 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.PropertyMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceItem. Define a Workspace item like folder or
|
||||||
|
* folder-item.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceItem {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item id.
|
||||||
|
*
|
||||||
|
* @return the id.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public String getId()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item name.
|
||||||
|
*
|
||||||
|
* @return the name.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public String getName()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item description.
|
||||||
|
*
|
||||||
|
* @return the description.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public String getDescription()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item creation time.
|
||||||
|
*
|
||||||
|
* @return the creation time.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public Calendar getCreationTime()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item last modification time.
|
||||||
|
*
|
||||||
|
* @return the last modification time.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public Calendar getLastModificationTime()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the last modified by.
|
||||||
|
*
|
||||||
|
* @return the last modified by
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public String getLastModifiedBy()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This item owner.
|
||||||
|
*
|
||||||
|
* @return the owner.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public String getOwner()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the map property.
|
||||||
|
*
|
||||||
|
* @return the map property
|
||||||
|
*/
|
||||||
|
public PropertyMap getPropertyMap();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the accounting.
|
||||||
|
*
|
||||||
|
* @return the accounting
|
||||||
|
*/
|
||||||
|
public List<AccountingEntry> getAccounting();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the path.
|
||||||
|
*
|
||||||
|
* @return the path
|
||||||
|
*/
|
||||||
|
public String getPath();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the parent id.
|
||||||
|
*
|
||||||
|
* @return the parent id
|
||||||
|
*/
|
||||||
|
public String getParentId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return this item type.
|
||||||
|
*
|
||||||
|
* @return the type.
|
||||||
|
*/
|
||||||
|
public WorkspaceItemType getType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Says if this item is a root element.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if this element is a root, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public boolean isRoot()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a flag indicating whether the element is hidden.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the element is hidden, <code>false</code> if
|
||||||
|
* the element is visible.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* the internal error exception
|
||||||
|
*/
|
||||||
|
public boolean isHidden()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a flag indicating whether the element is shared.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the element is shared, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* the internal error exception
|
||||||
|
*/
|
||||||
|
public boolean isShared()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the item is in the trash.
|
||||||
|
*
|
||||||
|
* @return true if the item has been trashed
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* the internal error exception
|
||||||
|
*/
|
||||||
|
public boolean isTrashed()
|
||||||
|
throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the item is a folder.
|
||||||
|
*
|
||||||
|
* @return true if the item is a folder
|
||||||
|
* @throws InternalErrorException
|
||||||
|
* the internal error exception
|
||||||
|
*/
|
||||||
|
public boolean isFolder()
|
||||||
|
throws InternalErrorException;
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Enum WorkspaceItemType.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 19, 2018
|
||||||
|
*/
|
||||||
|
public enum WorkspaceItemType {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A folder.
|
||||||
|
*/
|
||||||
|
FOLDER,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A shared folder
|
||||||
|
*/
|
||||||
|
SHARED_FOLDER,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A smart folder
|
||||||
|
*/
|
||||||
|
SMART_FOLDER,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A folder item.
|
||||||
|
*/
|
||||||
|
FILE_ITEM,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A trash folder.
|
||||||
|
*/
|
||||||
|
TRASH_FOLDER,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A trash item.
|
||||||
|
*/
|
||||||
|
TRASH_ITEM,
|
||||||
|
|
||||||
|
|
||||||
|
VRE_FOLDER;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceSharedFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceSharedFolder extends WorkspaceFolder{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceVREFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 19, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceVREFolder extends WorkspaceSharedFolder {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class InsufficientPrivilegesException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class InsufficientPrivilegesException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 2423742342338757212L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new internal error exception.
|
||||||
|
* @param cause the exception cause.
|
||||||
|
*/
|
||||||
|
public InsufficientPrivilegesException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new internal error exception.
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public InsufficientPrivilegesException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new internal error exception.
|
||||||
|
* @param message the exception message.
|
||||||
|
* @param cause the exception cause.
|
||||||
|
*/
|
||||||
|
public InsufficientPrivilegesException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class InternalErrorException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class InternalErrorException extends Exception {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -8885298303989967692L;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new internal error exception.
|
||||||
|
*
|
||||||
|
* @param arg0 the arg0
|
||||||
|
*/
|
||||||
|
public InternalErrorException(String arg0) {
|
||||||
|
super(arg0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see java.lang.Throwable#toString()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return super.toString();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class ItemAlreadyExistException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class ItemAlreadyExistException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -2884454770219837164L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new item already exist exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public ItemAlreadyExistException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class ItemNotFoundException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class ItemNotFoundException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -553175277581696583L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new item not found exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public ItemNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A super class for all the workspace exceptions.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WorkspaceException extends Exception{
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -5657714325026850145L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public WorkspaceException() {
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Create a new workspace exception.
|
||||||
|
* @param message the exception message.
|
||||||
|
* @param cause the exception cause.
|
||||||
|
*/
|
||||||
|
public WorkspaceException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new workspace exception.
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public WorkspaceException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new workspace exception.
|
||||||
|
* @param cause the exception cause.
|
||||||
|
*/
|
||||||
|
public WorkspaceException(Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceFolderAlreadyExistException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WorkspaceFolderAlreadyExistException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -6285161417298571997L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace folder already exist exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public WorkspaceFolderAlreadyExistException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceFolderNotFoundException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WorkspaceFolderNotFoundException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -729077599735921718L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace folder not found exception.
|
||||||
|
*
|
||||||
|
* @param msg the exception message.
|
||||||
|
*/
|
||||||
|
public WorkspaceFolderNotFoundException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WrongDestinationException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WrongDestinationException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -1765035358366830708L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new wrong destination exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public WrongDestinationException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WrongItemTypeException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WrongItemTypeException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -5013356582135921634L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new wrong item type exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public WrongItemTypeException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.exceptions;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WrongParentTypeException.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public class WrongParentTypeException extends WorkspaceException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -6202770939428067425L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new wrong parent type exception.
|
||||||
|
*
|
||||||
|
* @param message the exception message.
|
||||||
|
*/
|
||||||
|
public WrongParentTypeException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface File.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface File {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the folder item type.
|
||||||
|
*
|
||||||
|
* @return the folder item type
|
||||||
|
*/
|
||||||
|
public FileItemType getFileItemType();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the size.
|
||||||
|
*
|
||||||
|
* @return the size
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public Long getSize() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The folder myme type.
|
||||||
|
*
|
||||||
|
* @return the myme type
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public String getMimeType() throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface FolderItem.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface FileItem extends WorkspaceItem, File {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Current version.
|
||||||
|
*
|
||||||
|
* @return the current version
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public WorkspaceVersion getCurrentVersion() throws InternalErrorException;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.model.types.GenericItemType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Enum FileItemType.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
public enum FileItemType implements GenericItemType{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Document.
|
||||||
|
*/
|
||||||
|
DOCUMENT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Image document.
|
||||||
|
*/
|
||||||
|
IMAGE_DOCUMENT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PDF document.
|
||||||
|
*/
|
||||||
|
PDF_DOCUMENT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Url document.
|
||||||
|
*/
|
||||||
|
URL_DOCUMENT,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Metadata.
|
||||||
|
*/
|
||||||
|
METADATA,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Trash item
|
||||||
|
*/
|
||||||
|
TRASH_ITEM,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A gCube item.
|
||||||
|
*/
|
||||||
|
GCUBE_ITEM
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface GCubeItem.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface GCubeItem extends FileItem {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the scopes.
|
||||||
|
*
|
||||||
|
* @return the scopes
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<String> getScopes() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item type.
|
||||||
|
*
|
||||||
|
* @return the item type
|
||||||
|
*/
|
||||||
|
public String getItemType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the creator.
|
||||||
|
*
|
||||||
|
* @return the creator
|
||||||
|
*/
|
||||||
|
public String getCreator();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Share.
|
||||||
|
*
|
||||||
|
* @param users the users
|
||||||
|
* @return the workspace shared folder
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public WorkspaceSharedFolder share(List<String> users) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the data.
|
||||||
|
*
|
||||||
|
* @return the data
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public InputStream getData() throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface Image.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface Image extends File {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The image width.
|
||||||
|
* @return the width.
|
||||||
|
*/
|
||||||
|
public Long getWidth();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The image height.
|
||||||
|
* @return the height.
|
||||||
|
*/
|
||||||
|
public Long getHeight();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The image thumbnail.
|
||||||
|
* @return the thumbnail.
|
||||||
|
* @throws InternalErrorException if an internal error occurs.
|
||||||
|
*/
|
||||||
|
public InputStream getThumbnail() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The image thumbanil width.
|
||||||
|
* @return the thumbnail width.
|
||||||
|
*/
|
||||||
|
public Long getThumbnailWidth();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The image thumbnail height.
|
||||||
|
* @return the thumbnail height.
|
||||||
|
*/
|
||||||
|
public Long getThumbnailHeight();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface FileItemImage.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
public interface ImageFileItem extends FileItem, Image {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface FileItemPDF.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
public interface PDFFileItem extends FileItem{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the number of pages.
|
||||||
|
*
|
||||||
|
* @return the numberOfPages
|
||||||
|
*/
|
||||||
|
public Long getNumberOfPages();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the version.
|
||||||
|
*
|
||||||
|
* @return the version
|
||||||
|
*/
|
||||||
|
public String getVersion();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the author.
|
||||||
|
*
|
||||||
|
* @return the author
|
||||||
|
*/
|
||||||
|
public String getAuthor();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the title.
|
||||||
|
*
|
||||||
|
* @return the title
|
||||||
|
*/
|
||||||
|
public String getTitle();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the producer.
|
||||||
|
*
|
||||||
|
* @return the producer
|
||||||
|
*/
|
||||||
|
public String getProducer();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface PropertyMap.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 22, 2018
|
||||||
|
*/
|
||||||
|
public interface PropertyMap {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the values.
|
||||||
|
*
|
||||||
|
* @return the values
|
||||||
|
*/
|
||||||
|
public Map<String, Object> getValues();
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface FileItemURL.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
public interface URLFileItem extends FileItem{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.folder.items;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceVersion.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceVersion {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the name.
|
||||||
|
*
|
||||||
|
* @return the name
|
||||||
|
*/
|
||||||
|
public String getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the created.
|
||||||
|
*
|
||||||
|
* @return the created
|
||||||
|
*/
|
||||||
|
public Calendar getCreated();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the user.
|
||||||
|
*
|
||||||
|
* @return the user
|
||||||
|
*/
|
||||||
|
public String getUser();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the remote path.
|
||||||
|
*
|
||||||
|
* @return the remote path
|
||||||
|
*/
|
||||||
|
public String getRemotePath();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the size.
|
||||||
|
*
|
||||||
|
* @return the size
|
||||||
|
*/
|
||||||
|
public long getSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if is current version.
|
||||||
|
*
|
||||||
|
* @return true, if is current version
|
||||||
|
*/
|
||||||
|
public boolean isCurrentVersion();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AccountingEntry implements org.gcube.common.storagehubwrapper.shared.tohl.AccountingEntry, Serializable{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 2880510084929441352L;
|
||||||
|
|
||||||
|
String user;
|
||||||
|
Calendar date;
|
||||||
|
String entryType;
|
||||||
|
String version;
|
||||||
|
String primaryType;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.FileItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.WorkspaceVersion;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class FileItem.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class FileItem extends WorkspaceItem implements org.gcube.common.storagehubwrapper.shared.tohl.folder.items.FileItem {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -4149282274165182444L;
|
||||||
|
|
||||||
|
|
||||||
|
private FileItemType fileItemType;
|
||||||
|
private Long size;
|
||||||
|
private String mimeType;
|
||||||
|
private WorkspaceVersion currentVersion;
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.File#getFolderItemType()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public FileItemType getFileItemType() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return fileItemType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.File#getSize()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getSize()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.File#getMimeType()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getMimeType()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return mimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.FileItem#getCurrentVersion()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WorkspaceVersion getCurrentVersion()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return currentVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString(callSuper=false)
|
||||||
|
public class ImageFile extends FileItem implements org.gcube.common.storagehubwrapper.shared.tohl.folder.items.ImageFileItem{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 7586826417080458164L;
|
||||||
|
|
||||||
|
private Long width;
|
||||||
|
private Long height;
|
||||||
|
private Long thumbnailWidth;
|
||||||
|
private Long thumbnailHeight;
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.Image#getWidth()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getWidth() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.Image#getHeight()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getHeight() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.Image#getThumbnail()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public InputStream getThumbnail()
|
||||||
|
throws InternalErrorException {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.Image#getThumbnailWidth()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getThumbnailWidth() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return thumbnailWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.folder.items.Image#getThumbnailHeight()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long getThumbnailHeight() {
|
||||||
|
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return thumbnailHeight;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface FileItemURL.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString(callSuper=false)
|
||||||
|
public class PDFFile extends FileItem implements org.gcube.common.storagehubwrapper.shared.tohl.folder.items.PDFFileItem{
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1367372682598677200L;
|
||||||
|
|
||||||
|
Long numberOfPages;
|
||||||
|
|
||||||
|
String version;
|
||||||
|
|
||||||
|
String author;
|
||||||
|
|
||||||
|
String title;
|
||||||
|
|
||||||
|
String producer;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 22, 2018
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class PropertyMap implements org.gcube.common.storagehubwrapper.shared.tohl.folder.items.PropertyMap{
|
||||||
|
|
||||||
|
Map<String, Object> values = new HashMap<String, Object>();
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 21, 2018
|
||||||
|
*/
|
||||||
|
public class URLFile extends FileItem implements org.gcube.common.storagehubwrapper.shared.tohl.folder.items.URLFileItem{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 7586826417080458164L;
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace folder.
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@ToString(callSuper=true)
|
||||||
|
public class WorkspaceFolder extends WorkspaceItem implements org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder{
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -3767943529796942863L;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.AccountingEntry;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.folder.items.PropertyMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceItemImpl.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jun 15, 2018
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portal.storagehubwrapper.shared.tohl.WorkspaceItem#isHidden()
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the folder.
|
||||||
|
*
|
||||||
|
* @param isFolder the new folder
|
||||||
|
*/
|
||||||
|
@Setter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace item.
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace item.
|
||||||
|
*
|
||||||
|
* @param id the id
|
||||||
|
* @param name the name
|
||||||
|
* @param path the path
|
||||||
|
* @param parentId the parent id
|
||||||
|
* @param trashed the trashed
|
||||||
|
* @param shared the shared
|
||||||
|
* @param locked the locked
|
||||||
|
* @param title the title
|
||||||
|
* @param description the description
|
||||||
|
* @param lastModifiedBy the last modified by
|
||||||
|
* @param lastModificationTime the last modification time
|
||||||
|
* @param creationTime the creation time
|
||||||
|
* @param owner the owner
|
||||||
|
* @param hidden the hidden
|
||||||
|
* @param accounting the accounting
|
||||||
|
* @param type the type
|
||||||
|
* @param isFolder the is folder
|
||||||
|
* @param isRoot the is root
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@ToString
|
||||||
|
public class WorkspaceItem implements org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem, Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 5444534091783292538L;
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
private String path;
|
||||||
|
private String parentId;
|
||||||
|
//private String primaryType;
|
||||||
|
private boolean trashed;
|
||||||
|
private boolean shared;
|
||||||
|
private boolean locked;
|
||||||
|
private String title;
|
||||||
|
private String description;
|
||||||
|
private String lastModifiedBy;
|
||||||
|
private Calendar lastModificationTime;
|
||||||
|
private Calendar creationTime;
|
||||||
|
private String owner;
|
||||||
|
//private ItemAction lastAction;
|
||||||
|
private boolean hidden;
|
||||||
|
private List<AccountingEntry> accounting;
|
||||||
|
private WorkspaceItemType type;
|
||||||
|
private boolean isFolder;
|
||||||
|
boolean isRoot;
|
||||||
|
private PropertyMap propertyMap;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceFolderImpl.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new workspace folder impl.
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Setter
|
||||||
|
@ToString(callSuper=true)
|
||||||
|
public class WorkspaceSharedFolder extends WorkspaceFolder implements org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceSharedFolder{
|
||||||
|
|
||||||
|
private static final long serialVersionUID = -6493111521916500793L;
|
||||||
|
|
||||||
|
private boolean isVreFolder;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.impl;
|
||||||
|
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Class WorkspaceVREFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
@NoArgsConstructor
|
||||||
|
@ToString(callSuper=true)
|
||||||
|
public class WorkspaceVREFolder extends WorkspaceFolder implements org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceVREFolder{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 1984917908193397527L;
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.trash;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemNotFoundException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceTrashFolder.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 26, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceTrashFolder extends WorkspaceFolder {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty Trash.
|
||||||
|
*
|
||||||
|
* @return a list of WorkspaceItem ids not removed; the list is null if every item has been removed
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<String> emptyTrash() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete permanently a specific item.
|
||||||
|
*
|
||||||
|
* @param id item to delete
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public void deletePermanentlyById(String id) throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore all item in Trash.
|
||||||
|
*
|
||||||
|
* @return a list of WorkspaceItem ids not restored; the list is null if every item has been restored
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public List<String> restoreAll() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore a specific item.
|
||||||
|
*
|
||||||
|
* @param id item to restore
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
public void restoreById(String id) throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get trashed items.
|
||||||
|
*
|
||||||
|
* @return the list of trashed items
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @throws ItemNotFoundException the item not found exception
|
||||||
|
* @deprecated use {@link #getChildren()} instead
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public List<WorkspaceTrashItem> listTrashItems() throws InternalErrorException, ItemNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Trash Item by Id.
|
||||||
|
*
|
||||||
|
* @param id of a trashed item
|
||||||
|
* @return a trashed item
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
* @deprecated use {@link org.gcube.portal.storagehubwrapper.server.tohl.homelibrary.home.workspace.Workspace#getItem(String itemId)} instead
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public WorkspaceTrashItem getTrashItemById(String id) throws InternalErrorException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,91 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.gcube.common.storagehubwrapper.shared.tohl.trash;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItemType;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Interface WorkspaceTrashItem.
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||||
|
* Jun 15, 2018
|
||||||
|
*/
|
||||||
|
public interface WorkspaceTrashItem extends WorkspaceFolder {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get original parent Id to restore the item.
|
||||||
|
*
|
||||||
|
* @return the original parent Id to restore the item
|
||||||
|
*/
|
||||||
|
String getOriginalParentId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the path where the item was deleted.
|
||||||
|
*
|
||||||
|
* @return the path where the item was deleted
|
||||||
|
*/
|
||||||
|
String getDeletedFrom();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the user who deleted the item.
|
||||||
|
*
|
||||||
|
* @return the user who deleted the item
|
||||||
|
*/
|
||||||
|
String getDeletedBy();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the date when the item was deleted.
|
||||||
|
*
|
||||||
|
* @return the date when the item was deleted
|
||||||
|
*/
|
||||||
|
Calendar getDeletedTime();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if the trash item was a folder.
|
||||||
|
*
|
||||||
|
* @return true if the trash item was a folder, false otherwise
|
||||||
|
*/
|
||||||
|
boolean isFolder();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get mime type.
|
||||||
|
*
|
||||||
|
* @return the mime type of the trashed item
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
String getMimeType() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name of the trashed item.
|
||||||
|
*
|
||||||
|
* @return the name of the trashed item
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
String getName() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return this item type.
|
||||||
|
* @return the type.
|
||||||
|
*/
|
||||||
|
WorkspaceItemType getType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete Permanently an item in the trash folder.
|
||||||
|
*
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
void deletePermanently() throws InternalErrorException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore an item in the trash folder.
|
||||||
|
*
|
||||||
|
* @throws InternalErrorException the internal error exception
|
||||||
|
*/
|
||||||
|
void restore() throws InternalErrorException;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,162 @@
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehubwrapper.server.StorageHubWrapper;
|
||||||
|
import org.gcube.common.storagehubwrapper.server.tohl.Workspace;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceFolder;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.WorkspaceItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.exceptions.ItemNotFoundException;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.FileItem;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.ImageFile;
|
||||||
|
import org.gcube.common.storagehubwrapper.shared.tohl.impl.PDFFile;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
* Jun 20, 2018
|
||||||
|
*/
|
||||||
|
public class WorkspaceInstance {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String USERNAME = "francesco.mangiacrapa";
|
||||||
|
public static String SCOPE = "/gcube";
|
||||||
|
public static String TOKEN = "0e2c7963-8d3e-4ea6-a56d-ffda530dd0fa-98187548";
|
||||||
|
|
||||||
|
StorageHubWrapper storageHubWrapper = null;
|
||||||
|
//Workspace workspace = null;
|
||||||
|
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void init(){
|
||||||
|
|
||||||
|
//METHOD 1
|
||||||
|
storageHubWrapper = new StorageHubWrapper(SCOPE, TOKEN);
|
||||||
|
//workspace = storageHubWrapper.getWorkspace();
|
||||||
|
|
||||||
|
//METHOD 2
|
||||||
|
// StorageHubClientService storageHubClientService = new StorageHubClientService(SCOPE, TOKEN);
|
||||||
|
// workspace = new WorkspaceStorageHubClientService.WorkspaceStorageHubClientServiceBuilder(storageHubClientService).
|
||||||
|
// withAccounting(true).
|
||||||
|
// withMapProperties(true).
|
||||||
|
// build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getRoot() {
|
||||||
|
System.out.println("Get Root test");
|
||||||
|
WorkspaceFolder root;
|
||||||
|
try {
|
||||||
|
root = storageHubWrapper.getWorkspace().getRoot();
|
||||||
|
System.out.println(root);
|
||||||
|
}
|
||||||
|
catch (InternalErrorException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//@Test
|
||||||
|
public void getChildren() throws InternalErrorException{
|
||||||
|
System.out.println("Get children test");
|
||||||
|
|
||||||
|
WorkspaceFolder root = storageHubWrapper.getWorkspace().getRoot();
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<? extends WorkspaceItem> children = storageHubWrapper.getWorkspace().getChildren(root.getId());
|
||||||
|
int i = 0;
|
||||||
|
for (WorkspaceItem workspaceItem : children) {
|
||||||
|
System.out.println(++i+")"+workspaceItem);
|
||||||
|
System.out.println(workspaceItem.getType() +" "+workspaceItem.getClass());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InternalErrorException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getWorkspaceId() {
|
||||||
|
System.out.println("Getting the workspaceId");
|
||||||
|
try {
|
||||||
|
Workspace workspace = storageHubWrapper.getWorkspace();
|
||||||
|
if(workspace!=null){
|
||||||
|
WorkspaceFolder root = workspace.getRoot();
|
||||||
|
System.out.println("Retrieve the root "+root.getId()+" correctly");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getChildrenPerWorkspaceItem() throws InternalErrorException{
|
||||||
|
System.out.println("Get children test per workspace item");
|
||||||
|
|
||||||
|
WorkspaceFolder root = storageHubWrapper.getWorkspace().getRoot();
|
||||||
|
|
||||||
|
try {
|
||||||
|
List<? extends WorkspaceItem> children = storageHubWrapper.getWorkspace().getChildren(root.getId());
|
||||||
|
int i = 0;
|
||||||
|
Map<String, List<WorkspaceItem>> map = new HashMap<String,List<WorkspaceItem>>();
|
||||||
|
for (WorkspaceItem workspaceItem : children) {
|
||||||
|
String key = workspaceItem.getType().name();
|
||||||
|
List<WorkspaceItem> list = map.get(key);
|
||||||
|
if(list==null){
|
||||||
|
list = new ArrayList<WorkspaceItem>();
|
||||||
|
}
|
||||||
|
|
||||||
|
list.add(workspaceItem);
|
||||||
|
map.put(key, list);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (String key : map.keySet()) {
|
||||||
|
List<WorkspaceItem> list = map.get(key);
|
||||||
|
for (WorkspaceItem workspaceItem : list) {
|
||||||
|
switch (workspaceItem.getType()) {
|
||||||
|
case FILE_ITEM:
|
||||||
|
FileItem fileItem = (FileItem) workspaceItem;
|
||||||
|
switch (fileItem.getFileItemType()) {
|
||||||
|
case PDF_DOCUMENT:
|
||||||
|
PDFFile pdfFile = (PDFFile) fileItem;
|
||||||
|
System.out.println("PDF_DOCUMENT "+pdfFile);
|
||||||
|
PDFFile completeItem = (PDFFile) storageHubWrapper.getWorkspace().getItem(fileItem.getId(), true, true, true);
|
||||||
|
System.out.println(completeItem);
|
||||||
|
break;
|
||||||
|
case IMAGE_DOCUMENT:
|
||||||
|
ImageFile imageFile = (ImageFile) fileItem;
|
||||||
|
System.out.println("IMAGE_DOCUMENT "+imageFile);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(fileItem.getFileItemType() +" "+workspaceItem.getClass());
|
||||||
|
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (InternalErrorException | ItemNotFoundException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue