ckan2zenodo-library/src/main/java/org/gcube/data/publishing/ckan2zenodo/Ckan2Zenodo.java

113 lines
3.6 KiB
Java
Raw Normal View History

2019-11-22 16:31:50 +01:00
package org.gcube.data.publishing.ckan2zenodo;
2020-01-17 18:37:07 +01:00
import java.net.MalformedURLException;
2019-12-16 18:49:29 +01:00
import java.util.List;
2019-12-09 15:17:58 +01:00
import java.util.Set;
import java.util.concurrent.Future;
import org.gcube.data.publishing.ckan2zenodo.model.CkanItemDescriptor;
import org.gcube.data.publishing.ckan2zenodo.model.CkanResource;
import org.gcube.data.publishing.ckan2zenodo.model.UploadPolicy;
2019-12-16 18:49:29 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.faults.ConfigurationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.GcatException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.InvalidItemException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.TransformationException;
import org.gcube.data.publishing.ckan2zenodo.model.faults.ZenodoException;
2021-07-30 12:04:55 +02:00
import org.gcube.data.publishing.ckan2zenodo.model.report.EnvironmentReport;
2019-12-09 15:17:58 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
2019-11-26 14:55:20 +01:00
public interface Ckan2Zenodo {
2019-11-22 16:31:50 +01:00
2019-12-09 15:24:53 +01:00
/**
* Loads a CkanItem identified by @param itemName from current VRE gCat
*
* @param itemName
* @return
2019-12-16 18:49:29 +01:00
* @throws GcatException
2019-12-09 15:24:53 +01:00
*/
2019-12-16 18:49:29 +01:00
public CkanItemDescriptor read(String itemName) throws GcatException;
2019-12-09 15:24:53 +01:00
/**
2019-12-16 18:49:29 +01:00
* Translates @param desc into a ZenodoDeposition using mappings declared in current VRE and previous existing Zenodo Deposition if any
2019-12-09 15:24:53 +01:00
*
* @param desc
* @return
2019-12-16 18:49:29 +01:00
* @throws InvalidItemException
* @throws ZenodoException
* @throws ConfigurationException
* @throws TransformationException
2019-12-09 15:24:53 +01:00
*/
2019-12-16 18:49:29 +01:00
public ZenodoDeposition translate(CkanItemDescriptor desc) throws InvalidItemException, ZenodoException, ConfigurationException, TransformationException;
2019-12-09 15:24:53 +01:00
2020-06-18 13:46:19 +02:00
/**
* Forces translation of passed @param desc without raising Configuration Exception
*
* @param desc
* @return *
* @throws TransformationException
* @throws ZenodoException
* @throws InvalidItemException
*/
public ZenodoDeposition forceTranslation(CkanItemDescriptor desc) throws InvalidItemException, ZenodoException, TransformationException;
2019-12-09 15:24:53 +01:00
/**
* Create / update metadata of @param toUpdate into the Zenodo instance declared in current VRE
*
* @param toUpdate
* @return
2019-12-16 18:49:29 +01:00
* @throws ZenodoException
2020-01-07 18:03:26 +01:00
* @throws ConfigurationException
2019-12-09 15:24:53 +01:00
*/
2020-01-07 18:03:26 +01:00
public ZenodoDeposition updatedMetadata(ZenodoDeposition toUpdate) throws ZenodoException, ConfigurationException;
2019-12-09 15:24:53 +01:00
/**
* Filters ckan resources of @param desc by using mappings declared in current VRE
*
* @param desc
* @return
2019-12-16 18:49:29 +01:00
* @throws ConfigurationException
* @throws TransformationException
2019-12-09 15:24:53 +01:00
*/
public List<CkanResource> filterResources(CkanItemDescriptor desc) throws TransformationException;
2019-12-09 15:24:53 +01:00
/**
* Same as uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition,UploadPolicy policy) with default policy
2019-12-09 15:24:53 +01:00
*
* @param toUpload
* @param deposition
* @return
2019-12-16 18:49:29 +01:00
* @throws ZenodoException
2020-01-07 18:03:26 +01:00
* @throws ConfigurationException
2019-12-09 15:24:53 +01:00
*/
2020-01-07 18:03:26 +01:00
public Future<ZenodoDeposition> uploadFiles(Set<CkanResource> toUpload,ZenodoDeposition deposition) throws ZenodoException, ConfigurationException;
2019-12-09 15:24:53 +01:00
2019-12-09 15:24:53 +01:00
/**
* Publishes @param dep, setting/updateing DOI reference into @param toUpdate
*
* @param dep
* @param toUpdate
* @return
2019-12-16 18:49:29 +01:00
* @throws ZenodoException
2020-01-07 18:03:26 +01:00
* @throws ConfigurationException
2020-01-17 18:37:07 +01:00
* @throws InvalidItemException
* @throws MalformedURLException
2019-12-09 15:24:53 +01:00
*/
2020-01-17 18:37:07 +01:00
public ZenodoDeposition publish(ZenodoDeposition dep, CkanItemDescriptor toUpdate) throws ZenodoException, ConfigurationException, InvalidItemException, MalformedURLException;
2019-12-09 15:17:58 +01:00
2021-02-18 12:14:29 +01:00
/**
* Checks environment configuration
*
* -gCat is present
* -Zenodo credentials are present
*
*
*
*/
2021-07-30 12:04:55 +02:00
public EnvironmentReport checkEnvironment();
2019-11-22 16:31:50 +01:00
}