refactoring
This commit is contained in:
parent
d35ffd201d
commit
6c50524c1e
|
@ -13,7 +13,6 @@ import com.github.imifou.jsonschema.module.addon.AddonModule;
|
||||||
import com.github.victools.jsonschema.generator.*;
|
import com.github.victools.jsonschema.generator.*;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.eosc.model.Result;
|
import eu.dnetlib.dhp.eosc.model.Result;
|
||||||
import eu.dnetlib.dhp.oa.model.graph.*;
|
|
||||||
|
|
||||||
public class ExecCreateSchemas {
|
public class ExecCreateSchemas {
|
||||||
final static String DIRECTORY = "/eu/dnetlib/dhp/schema/dump/jsonschemas/";
|
final static String DIRECTORY = "/eu/dnetlib/dhp/schema/dump/jsonschemas/";
|
||||||
|
|
|
@ -3,8 +3,6 @@ package eu.dnetlib.dhp.eosc.model;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
public class Funder implements Serializable {
|
|
||||||
|
|
||||||
@JsonSchema(description = "The short name of the funder (EC)")
|
|
||||||
private String shortName;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The name of the funder (European Commission)")
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "Geographical jurisdiction (e.g. for European Commission is EU, for Croatian Science Foundation is HR)")
|
|
||||||
private String jurisdiction;
|
|
||||||
|
|
||||||
public String getJurisdiction() {
|
|
||||||
return jurisdiction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJurisdiction(String jurisdiction) {
|
|
||||||
this.jurisdiction = jurisdiction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getShortName() {
|
|
||||||
return shortName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setShortName(String shortName) {
|
|
||||||
this.shortName = shortName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class to store the common information about the project that will be dumped for community and for the whole
|
|
||||||
* graph - private String id to store the id of the project (OpenAIRE id) - private String code to store the grant
|
|
||||||
* agreement of the project - private String acronym to store the acronym of the project - private String title to store
|
|
||||||
* the tile of the project
|
|
||||||
*/
|
|
||||||
public class Project implements Serializable {
|
|
||||||
@JsonSchema(description = "The OpenAIRE id for the project")
|
|
||||||
protected String id;// OpenAIRE id
|
|
||||||
|
|
||||||
@JsonSchema(description = "The grant agreement number")
|
|
||||||
protected String code;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The acronym of the project")
|
|
||||||
protected String acronym;
|
|
||||||
|
|
||||||
protected String title;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAcronym() {
|
|
||||||
return acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAcronym(String acronym) {
|
|
||||||
this.acronym = acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates the process that produced (or provided) the information, and the trust associated to the information. It
|
|
||||||
* has two parameters: - provenance of type String to store the provenance of the information, - trust of type String to
|
|
||||||
* store the trust associated to the information
|
|
||||||
*/
|
|
||||||
public class Provenance implements Serializable {
|
|
||||||
private String provenance;
|
|
||||||
private String trust;
|
|
||||||
|
|
||||||
public String getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(String provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTrust() {
|
|
||||||
return trust;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTrust(String trust) {
|
|
||||||
this.trust = trust;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Provenance newInstance(String provenance, String trust) {
|
|
||||||
Provenance p = new Provenance();
|
|
||||||
p.provenance = provenance;
|
|
||||||
p.trust = trust;
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString() {
|
|
||||||
return provenance + trust;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class Constants implements Serializable {
|
|
||||||
// collectedFrom va con isProvidedBy -> becco da ModelSupport
|
|
||||||
|
|
||||||
public static final String HOSTED_BY = "isHostedBy";
|
|
||||||
public static final String HOSTS = "hosts";
|
|
||||||
|
|
||||||
// community result uso isrelatedto
|
|
||||||
|
|
||||||
public static final String RESULT_ENTITY = "result";
|
|
||||||
public static final String DATASOURCE_ENTITY = "datasource";
|
|
||||||
public static final String CONTEXT_ENTITY = "context";
|
|
||||||
|
|
||||||
public static final String CONTEXT_ID = "60";
|
|
||||||
public static final String CONTEXT_NS_PREFIX = "context____";
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,346 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.eosc.model.Container;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the datasource OpenAIRE collects information from. It contains the following parameters: -
|
|
||||||
* id of type String to store the OpenAIRE id for the datasource. It corresponds to the parameter id of the datasource
|
|
||||||
* represented in the internal model - originalId of type List<String> to store the list of original ids associated to
|
|
||||||
* the datasource. It corresponds to the parameter originalId of the datasource represented in the internal model. The
|
|
||||||
* null values are filtered out - pid of type List<eu.dnetlib.shp.schema.dump.oaf.ControlledField> to store the
|
|
||||||
* persistent identifiers for the datasource. For each pid in the datasource represented in the internal model one pid
|
|
||||||
* in the external model is produced as : - schema corresponds to pid.qualifier.classid of the datasource represented in
|
|
||||||
* the internal model - value corresponds to pid.value of the datasource represented in the internal model -
|
|
||||||
* datasourceType of type eu.dnetlib.dhp.schema.dump.oaf.ControlledField to store the datasource type (e.g.
|
|
||||||
* pubsrepository::institutional, Institutional Repository) as in the dnet vocabulary dnet:datasource_typologies. It
|
|
||||||
* corresponds to datasourcetype of the datasource represented in the internal model and : - code corresponds to
|
|
||||||
* datasourcetype.classid - value corresponds to datasourcetype.classname - openairecompatibility of type String to
|
|
||||||
* store information about the OpenAIRE compatibility of the ingested results (which guidelines they are compliant to).
|
|
||||||
* It corresponds to openairecompatibility.classname of the datasource represented in the internal model - officialname
|
|
||||||
* of type Sgtring to store the official name of the datasource. It correspond to officialname.value of the datasource
|
|
||||||
* represented in the internal model - englishname of type String to store the English name of the datasource. It
|
|
||||||
* corresponds to englishname.value of the datasource represented in the internal model - websiteurl of type String to
|
|
||||||
* store the URL of the website of the datasource. It corresponds to websiteurl.value of the datasource represented in
|
|
||||||
* the internal model - logourl of type String to store the URL of the logo for the datasource. It corresponds to
|
|
||||||
* logourl.value of the datasource represented in the internal model - dateofvalidation of type String to store the data
|
|
||||||
* of validation against the guidelines for the datasource records. It corresponds to dateofvalidation.value of the
|
|
||||||
* datasource represented in the internal model - description of type String to store the description for the
|
|
||||||
* datasource. It corresponds to description.value of the datasource represented in the internal model
|
|
||||||
*/
|
|
||||||
public class Datasource implements Serializable {
|
|
||||||
@JsonSchema(description = "The OpenAIRE id of the data source")
|
|
||||||
private String id; // string
|
|
||||||
|
|
||||||
@JsonSchema(description = "Original identifiers for the datasource")
|
|
||||||
private List<String> originalId; // list string
|
|
||||||
|
|
||||||
@JsonSchema(description = "Persistent identifiers of the datasource")
|
|
||||||
private List<DatasourcePid> pid; // list<String>
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "The type of the datasource. See https://api.openaire.eu/vocabularies/dnet:datasource_typologies")
|
|
||||||
private DatasourceSchemeValue datasourcetype; // value
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "OpenAIRE guidelines the data source comply with. See also https://guidelines.openaire.eu.")
|
|
||||||
private String openairecompatibility; // value
|
|
||||||
|
|
||||||
@JsonSchema(description = "The official name of the datasource")
|
|
||||||
private String officialname; // string
|
|
||||||
|
|
||||||
@JsonSchema(description = "The English name of the datasource")
|
|
||||||
private String englishname; // string
|
|
||||||
|
|
||||||
private String websiteurl; // string
|
|
||||||
|
|
||||||
private String logourl; // string
|
|
||||||
|
|
||||||
@JsonSchema(description = "The date of last validation against the OpenAIRE guidelines for the datasource records")
|
|
||||||
private String dateofvalidation; // string
|
|
||||||
|
|
||||||
private String description; // description
|
|
||||||
|
|
||||||
@JsonSchema(description = "List of subjects associated to the datasource")
|
|
||||||
private List<String> subjects; // List<String>
|
|
||||||
|
|
||||||
// opendoar specific fields (od*)
|
|
||||||
|
|
||||||
@JsonSchema(description = "The languages present in the data source's content, as defined by OpenDOAR.")
|
|
||||||
private List<String> languages; // odlanguages List<String>
|
|
||||||
|
|
||||||
@JsonSchema(description = "Types of content in the data source, as defined by OpenDOAR")
|
|
||||||
private List<String> contenttypes; // odcontent types List<String>
|
|
||||||
|
|
||||||
// re3data fields
|
|
||||||
@JsonSchema(description = "Releasing date of the data source, as defined by re3data.org")
|
|
||||||
private String releasestartdate; // string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "Date when the data source went offline or stopped ingesting new research data. As defined by re3data.org")
|
|
||||||
private String releaseenddate; // string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "The URL of a mission statement describing the designated community of the data source. As defined by re3data.org")
|
|
||||||
private String missionstatementurl; // string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "Type of access to the data source, as defined by re3data.org. Possible values: " +
|
|
||||||
"{open, restricted, closed}")
|
|
||||||
private String accessrights; // databaseaccesstype string
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
@JsonSchema(description = "Type of data upload. As defined by re3data.org: one of {open, restricted,closed}")
|
|
||||||
private String uploadrights; // datauploadtype string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "Access restrinctions to the data source, as defined by re3data.org. One of {feeRequired, registration, other}")
|
|
||||||
private String databaseaccessrestriction; // string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "Upload restrictions applied by the datasource, as defined by re3data.org. One of {feeRequired, registration, other}")
|
|
||||||
private String datauploadrestriction; // string
|
|
||||||
|
|
||||||
@JsonSchema(description = "As defined by redata.org: 'yes' if the data source supports versioning, 'no' otherwise.")
|
|
||||||
private Boolean versioning; // boolean
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "The URL of the data source providing information on how to cite its items. As defined by re3data.org.")
|
|
||||||
private String citationguidelineurl; // string
|
|
||||||
|
|
||||||
// {yes, no, uknown}
|
|
||||||
@JsonSchema(
|
|
||||||
description = "The persistent identifier system that is used by the data source. As defined by re3data.org")
|
|
||||||
private String pidsystems; // string
|
|
||||||
|
|
||||||
@JsonSchema(
|
|
||||||
description = "The certificate, seal or standard the data source complies with. As defined by re3data.org.")
|
|
||||||
private String certificates; // string
|
|
||||||
|
|
||||||
@JsonSchema(description = "Policies of the data source, as defined in OpenDOAR.")
|
|
||||||
private List<String> policies; //
|
|
||||||
|
|
||||||
@JsonSchema(description = "Information about the journal, if this data source is of type Journal.")
|
|
||||||
private Container journal; // issn etc del Journal
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getOriginalId() {
|
|
||||||
return originalId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalId(List<String> originalId) {
|
|
||||||
this.originalId = originalId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasourcePid> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<DatasourcePid> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DatasourceSchemeValue getDatasourcetype() {
|
|
||||||
return datasourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourcetype(DatasourceSchemeValue datasourcetype) {
|
|
||||||
this.datasourcetype = datasourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOpenairecompatibility() {
|
|
||||||
return openairecompatibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOpenairecompatibility(String openairecompatibility) {
|
|
||||||
this.openairecompatibility = openairecompatibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOfficialname() {
|
|
||||||
return officialname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOfficialname(String officialname) {
|
|
||||||
this.officialname = officialname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEnglishname() {
|
|
||||||
return englishname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnglishname(String englishname) {
|
|
||||||
this.englishname = englishname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(String websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLogourl() {
|
|
||||||
return logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLogourl(String logourl) {
|
|
||||||
this.logourl = logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateofvalidation() {
|
|
||||||
return dateofvalidation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofvalidation(String dateofvalidation) {
|
|
||||||
this.dateofvalidation = dateofvalidation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getSubjects() {
|
|
||||||
return subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubjects(List<String> subjects) {
|
|
||||||
this.subjects = subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getLanguages() {
|
|
||||||
return languages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLanguages(List<String> languages) {
|
|
||||||
this.languages = languages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getContenttypes() {
|
|
||||||
return contenttypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContenttypes(List<String> contenttypes) {
|
|
||||||
this.contenttypes = contenttypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getReleasestartdate() {
|
|
||||||
return releasestartdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReleasestartdate(String releasestartdate) {
|
|
||||||
this.releasestartdate = releasestartdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getReleaseenddate() {
|
|
||||||
return releaseenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReleaseenddate(String releaseenddate) {
|
|
||||||
this.releaseenddate = releaseenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMissionstatementurl() {
|
|
||||||
return missionstatementurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMissionstatementurl(String missionstatementurl) {
|
|
||||||
this.missionstatementurl = missionstatementurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAccessrights() {
|
|
||||||
return accessrights;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccessrights(String accessrights) {
|
|
||||||
this.accessrights = accessrights;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUploadrights() {
|
|
||||||
return uploadrights;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUploadrights(String uploadrights) {
|
|
||||||
this.uploadrights = uploadrights;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatabaseaccessrestriction() {
|
|
||||||
return databaseaccessrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatabaseaccessrestriction(String databaseaccessrestriction) {
|
|
||||||
this.databaseaccessrestriction = databaseaccessrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatauploadrestriction() {
|
|
||||||
return datauploadrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatauploadrestriction(String datauploadrestriction) {
|
|
||||||
this.datauploadrestriction = datauploadrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getVersioning() {
|
|
||||||
return versioning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersioning(Boolean versioning) {
|
|
||||||
this.versioning = versioning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCitationguidelineurl() {
|
|
||||||
return citationguidelineurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCitationguidelineurl(String citationguidelineurl) {
|
|
||||||
this.citationguidelineurl = citationguidelineurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPidsystems() {
|
|
||||||
return pidsystems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPidsystems(String pidsystems) {
|
|
||||||
this.pidsystems = pidsystems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCertificates() {
|
|
||||||
return certificates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCertificates(String certificates) {
|
|
||||||
this.certificates = certificates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getPolicies() {
|
|
||||||
return policies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPolicies(List<String> policiesr3) {
|
|
||||||
this.policies = policiesr3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Container getJournal() {
|
|
||||||
return journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJournal(Container journal) {
|
|
||||||
this.journal = journal;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
public class DatasourcePid implements Serializable {
|
|
||||||
|
|
||||||
@JsonSchema(description = "The scheme used to express the value ")
|
|
||||||
private String scheme;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The value expressed in the scheme ")
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
public String getScheme() {
|
|
||||||
return scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setScheme(String scheme) {
|
|
||||||
this.scheme = scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DatasourcePid newInstance(String scheme, String value) {
|
|
||||||
DatasourcePid cf = new DatasourcePid();
|
|
||||||
|
|
||||||
cf.setScheme(scheme);
|
|
||||||
cf.setValue(value);
|
|
||||||
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
public // TODO change the DatasourceSchemaValue to DatasourceKeyValue. The scheme is always the dnet one. What we show
|
|
||||||
// here is the entry in the scheme (the key) and its understandable value
|
|
||||||
class DatasourceSchemeValue implements Serializable {
|
|
||||||
@JsonSchema(description = "The scheme used to express the value (i.e. pubsrepository::journal)")
|
|
||||||
private String scheme;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The value expressed in the scheme (Journal)")
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
public String getScheme() {
|
|
||||||
return scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setScheme(String scheme) {
|
|
||||||
this.scheme = scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DatasourceSchemeValue newInstance(String scheme, String value) {
|
|
||||||
DatasourceSchemeValue cf = new DatasourceSchemeValue();
|
|
||||||
|
|
||||||
cf.setScheme(scheme);
|
|
||||||
cf.setValue(value);
|
|
||||||
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the funder funding the project related to the result. It extends
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.Funder with the following parameter: - - private
|
|
||||||
* eu.dnetdlib.dhp.schema.dump.oaf.graph.Fundings funding_stream to store the fundingstream
|
|
||||||
*/
|
|
||||||
public class Funder extends eu.dnetlib.dhp.oa.model.Funder {
|
|
||||||
|
|
||||||
@JsonSchema(description = "Description of the funding stream")
|
|
||||||
private Fundings funding_stream;
|
|
||||||
|
|
||||||
public Fundings getFunding_stream() {
|
|
||||||
return funding_stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFunding_stream(Fundings funding_stream) {
|
|
||||||
this.funding_stream = funding_stream;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store inforamtion about the funding stream. It has two parameters: - private String id to store the id of the
|
|
||||||
* fundings stream. The id is created by appending the shortname of the funder to the name of each level in the xml
|
|
||||||
* representing the fundng stream. For example: if the funder is the European Commission, the funding level 0 name is
|
|
||||||
* FP7, the funding level 1 name is SP3 and the funding level 2 name is PEOPLE then the id will be: EC::FP7::SP3::PEOPLE
|
|
||||||
* - private String description to describe the funding stream. It is created by concatenating the description of each
|
|
||||||
* funding level so for the example above the description would be: SEVENTH FRAMEWORK PROGRAMME - SP3-People -
|
|
||||||
* Marie-Curie Actions
|
|
||||||
*/
|
|
||||||
public class Fundings implements Serializable {
|
|
||||||
|
|
||||||
@JsonSchema(description = "Id of the funding stream")
|
|
||||||
private String id;
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To describe the funded amount. It has the following parameters: - private String currency to store the currency of
|
|
||||||
* the fund - private float totalcost to store the total cost of the project - private float fundedamount to store the
|
|
||||||
* funded amount by the funder
|
|
||||||
*/
|
|
||||||
public class Granted implements Serializable {
|
|
||||||
@JsonSchema(description = "The currency of the granted amount (e.g. EUR)")
|
|
||||||
private String currency;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The total cost of the project")
|
|
||||||
private float totalcost;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The funded amount")
|
|
||||||
private float fundedamount;
|
|
||||||
|
|
||||||
public String getCurrency() {
|
|
||||||
return currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrency(String currency) {
|
|
||||||
this.currency = currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getTotalcost() {
|
|
||||||
return totalcost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalcost(float totalcost) {
|
|
||||||
this.totalcost = totalcost;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getFundedamount() {
|
|
||||||
return fundedamount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFundedamount(float fundedamount) {
|
|
||||||
this.fundedamount = fundedamount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Granted newInstance(String currency, float totalcost, float fundedamount) {
|
|
||||||
Granted granted = new Granted();
|
|
||||||
granted.currency = currency;
|
|
||||||
granted.totalcost = totalcost;
|
|
||||||
granted.fundedamount = fundedamount;
|
|
||||||
return granted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Granted newInstance(String currency, float fundedamount) {
|
|
||||||
Granted granted = new Granted();
|
|
||||||
granted.currency = currency;
|
|
||||||
granted.fundedamount = fundedamount;
|
|
||||||
return granted;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the classification for the project. The classification depends on the programme. For example
|
|
||||||
* H2020-EU.3.4.5.3 can be classified as
|
|
||||||
* H2020-EU.3. => Societal Challenges (level1)
|
|
||||||
* H2020-EU.3.4. => Transport (level2)
|
|
||||||
* H2020-EU.3.4.5. => CLEANSKY2 (level3)
|
|
||||||
* H2020-EU.3.4.5.3. => IADP Fast Rotorcraft (level4)
|
|
||||||
*
|
|
||||||
* We decided to explicitly represent up to three levels in the classification.
|
|
||||||
*
|
|
||||||
* H2020Classification has the following parameters:
|
|
||||||
* - private Programme programme to store the information about the programme related to this classification
|
|
||||||
* - private String level1 to store the information about the level 1 of the classification (Priority or Pillar of the EC)
|
|
||||||
* - private String level2 to store the information about the level2 af the classification (Objectives (?))
|
|
||||||
* - private String level3 to store the information about the level3 of the classification
|
|
||||||
* - private String classification to store the entire classification related to the programme
|
|
||||||
*/
|
|
||||||
public class H2020Classification implements Serializable {
|
|
||||||
private Programme programme;
|
|
||||||
|
|
||||||
private String level1;
|
|
||||||
private String level2;
|
|
||||||
private String level3;
|
|
||||||
|
|
||||||
private String classification;
|
|
||||||
|
|
||||||
public Programme getProgramme() {
|
|
||||||
return programme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProgramme(Programme programme) {
|
|
||||||
this.programme = programme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLevel1() {
|
|
||||||
return level1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLevel1(String level1) {
|
|
||||||
this.level1 = level1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLevel2() {
|
|
||||||
return level2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLevel2(String level2) {
|
|
||||||
this.level2 = level2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLevel3() {
|
|
||||||
return level3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLevel3(String level3) {
|
|
||||||
this.level3 = level3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getClassification() {
|
|
||||||
return classification;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClassification(String classification) {
|
|
||||||
this.classification = classification;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static H2020Classification newInstance(String programme_code, String programme_description, String level1,
|
|
||||||
String level2, String level3, String classification) {
|
|
||||||
H2020Classification h2020classification = new H2020Classification();
|
|
||||||
h2020classification.programme = Programme.newInstance(programme_code, programme_description);
|
|
||||||
h2020classification.level1 = level1;
|
|
||||||
h2020classification.level2 = level2;
|
|
||||||
h2020classification.level3 = level3;
|
|
||||||
h2020classification.classification = classification;
|
|
||||||
return h2020classification;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the generic node in a relation. It has the following parameters: - private String id the openaire id of
|
|
||||||
* the entity in the relation - private String type the type of the entity in the relation. Consider the generic
|
|
||||||
* relation between a Result R and a Project P, the node representing R will have as id the id of R and as type result,
|
|
||||||
* while the node representing the project will have as id the id of the project and as type project
|
|
||||||
*/
|
|
||||||
public class Node implements Serializable {
|
|
||||||
private String id;
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Node newInstance(String id, String type) {
|
|
||||||
Node node = new Node();
|
|
||||||
node.id = id;
|
|
||||||
node.type = type;
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,94 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.eosc.model.Country;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the generic organizaiton. It has the following parameters:
|
|
||||||
* - private String legalshortname to store the legalshortname of the organizaiton
|
|
||||||
* - private String legalname to store the legal name of the organization
|
|
||||||
* - private String websiteurl to store the websiteurl of the organization
|
|
||||||
* - private List<String> alternativenames to store the alternative names of the organization
|
|
||||||
* - private Country country to store the country of the organization
|
|
||||||
* - private String id to store the openaire id of the organization
|
|
||||||
* - private List<OrganizationPid> pid to store the list of pids for the organization
|
|
||||||
*/
|
|
||||||
public class Organization implements Serializable {
|
|
||||||
private String legalshortname;
|
|
||||||
private String legalname;
|
|
||||||
private String websiteurl;
|
|
||||||
|
|
||||||
@JsonSchema(description = "Alternative names that identify the organisation")
|
|
||||||
private List<String> alternativenames;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The organisation country")
|
|
||||||
private Country country;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The OpenAIRE id for the organisation")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@JsonSchema(description = "Persistent identifiers for the organisation i.e. isni 0000000090326370")
|
|
||||||
private List<OrganizationPid> pid;
|
|
||||||
|
|
||||||
public String getLegalshortname() {
|
|
||||||
return legalshortname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLegalshortname(String legalshortname) {
|
|
||||||
this.legalshortname = legalshortname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLegalname() {
|
|
||||||
return legalname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLegalname(String legalname) {
|
|
||||||
this.legalname = legalname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(String websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getAlternativenames() {
|
|
||||||
return alternativenames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAlternativenames(List<String> alternativenames) {
|
|
||||||
this.alternativenames = alternativenames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Country getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(Country country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<OrganizationPid> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<OrganizationPid> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
public
|
|
||||||
|
|
||||||
class OrganizationPid implements Serializable {
|
|
||||||
@JsonSchema(description = "The scheme of the identifier (i.e. isni)")
|
|
||||||
private String scheme;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The value in the schema (i.e. 0000000090326370)")
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
public String getScheme() {
|
|
||||||
return scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setScheme(String scheme) {
|
|
||||||
this.scheme = scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static OrganizationPid newInstance(String scheme, String value) {
|
|
||||||
OrganizationPid cf = new OrganizationPid();
|
|
||||||
|
|
||||||
cf.setScheme(scheme);
|
|
||||||
cf.setValue(value);
|
|
||||||
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the ec programme for the project. It has the following parameters: - private String code
|
|
||||||
* to store the code of the programme - private String description to store the description of the programme
|
|
||||||
*/
|
|
||||||
public class Programme implements Serializable {
|
|
||||||
@JsonSchema(description = "The code of the programme")
|
|
||||||
private String code;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The description of the programme")
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Programme newInstance(String code, String description) {
|
|
||||||
Programme p = new Programme();
|
|
||||||
p.code = code;
|
|
||||||
p.description = description;
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,198 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.oa.model.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.github.imifou.jsonschema.module.addon.annotation.JsonSchema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the class representing the Project in the model used for the dumps of the whole graph. At the moment the dump
|
|
||||||
* of the Projects differs from the other dumps because we do not create relations between Funders (Organization) and
|
|
||||||
* Projects but we put the information about the Funder within the Project representation. We also removed the
|
|
||||||
* collected from element from the Project. No relation between the Project and the Datasource entity from which it is
|
|
||||||
* collected will be created. We will never create relations between Project and Datasource. In case some relation will
|
|
||||||
* be extracted from the Project they will refer the Funder and will be of type ( organization -> funds -> project,
|
|
||||||
* project -> isFundedBy -> organization) We also removed the duration parameter because the most of times it is set to
|
|
||||||
* 0. It has the following parameters:
|
|
||||||
* - private String id to store the id of the project (OpenAIRE id)
|
|
||||||
* - private String websiteurl to store the websiteurl of the project
|
|
||||||
* - private String code to store the grant agreement of the project
|
|
||||||
* - private String acronym to store the acronym of the project
|
|
||||||
* - private String title to store the tile of the project
|
|
||||||
* - private String startdate to store the start date
|
|
||||||
* - private String enddate to store the end date
|
|
||||||
* - private String callidentifier to store the call indentifier
|
|
||||||
* - private String keywords to store the keywords
|
|
||||||
* - private boolean openaccessmandateforpublications to store if the project must accomplish to the open access mandate
|
|
||||||
* for publications. This value will be set to true if one of the field in the project represented in the internal model
|
|
||||||
* is set to true
|
|
||||||
* - private boolean openaccessmandatefordataset to store if the project must accomplish to the open access mandate for
|
|
||||||
* dataset. It is set to the value in the corresponding filed of the project represented in the internal model
|
|
||||||
* - private List<String> subject to store the list of subjects of the project
|
|
||||||
* - private List<Funder> funding to store the list of funder of the project
|
|
||||||
* - private String summary to store the summary of the project
|
|
||||||
* - private Granted granted to store the granted amount
|
|
||||||
* - private List<Programme> h2020programme to store the list of programmes the project is related to
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class Project implements Serializable {
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private String websiteurl;
|
|
||||||
private String code;
|
|
||||||
private String acronym;
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
private String startdate;
|
|
||||||
|
|
||||||
private String enddate;
|
|
||||||
|
|
||||||
private String callidentifier;
|
|
||||||
|
|
||||||
private String keywords;
|
|
||||||
|
|
||||||
private boolean openaccessmandateforpublications;
|
|
||||||
|
|
||||||
private boolean openaccessmandatefordataset;
|
|
||||||
private List<String> subject;
|
|
||||||
|
|
||||||
@JsonSchema(description = "Funding information for the project")
|
|
||||||
private List<Funder> funding;
|
|
||||||
|
|
||||||
private String summary;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The money granted to the project")
|
|
||||||
private Granted granted;
|
|
||||||
|
|
||||||
@JsonSchema(description = "The h2020 programme funding the project")
|
|
||||||
private List<Programme> h2020programme;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(String websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAcronym() {
|
|
||||||
return acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAcronym(String acronym) {
|
|
||||||
this.acronym = acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStartdate() {
|
|
||||||
return startdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartdate(String startdate) {
|
|
||||||
this.startdate = startdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEnddate() {
|
|
||||||
return enddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnddate(String enddate) {
|
|
||||||
this.enddate = enddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCallidentifier() {
|
|
||||||
return callidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCallidentifier(String callidentifier) {
|
|
||||||
this.callidentifier = callidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getKeywords() {
|
|
||||||
return keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKeywords(String keywords) {
|
|
||||||
this.keywords = keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isOpenaccessmandateforpublications() {
|
|
||||||
return openaccessmandateforpublications;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOpenaccessmandateforpublications(boolean openaccessmandateforpublications) {
|
|
||||||
this.openaccessmandateforpublications = openaccessmandateforpublications;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isOpenaccessmandatefordataset() {
|
|
||||||
return openaccessmandatefordataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOpenaccessmandatefordataset(boolean openaccessmandatefordataset) {
|
|
||||||
this.openaccessmandatefordataset = openaccessmandatefordataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getSubject() {
|
|
||||||
return subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubject(List<String> subject) {
|
|
||||||
this.subject = subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Funder> getFunding() {
|
|
||||||
return funding;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFunding(List<Funder> funding) {
|
|
||||||
this.funding = funding;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSummary() {
|
|
||||||
return summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSummary(String summary) {
|
|
||||||
this.summary = summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Granted getGranted() {
|
|
||||||
return granted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGranted(Granted granted) {
|
|
||||||
this.granted = granted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Programme> getH2020programme() {
|
|
||||||
return h2020programme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setH2020programme(List<Programme> h2020programme) {
|
|
||||||
this.h2020programme = h2020programme;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -69,7 +69,8 @@ public class ResultMapper implements Serializable {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void mapContext(Map<String, String> communityMap, Result out, eu.dnetlib.dhp.schema.oaf.Result input) {
|
private static void mapContext(Map<String, String> communityMap, Result out,
|
||||||
|
eu.dnetlib.dhp.schema.oaf.Result input) {
|
||||||
Set<String> communities = communityMap.keySet();
|
Set<String> communities = communityMap.keySet();
|
||||||
List<Context> contextList = Optional
|
List<Context> contextList = Optional
|
||||||
.ofNullable(
|
.ofNullable(
|
||||||
|
|
|
@ -9,9 +9,9 @@ import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.*;
|
import org.apache.hadoop.fs.*;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||||
import eu.dnetlib.dhp.common.api.MissingConceptDoiException;
|
|
||||||
import eu.dnetlib.dhp.common.api.ZenodoAPIClient;
|
|
||||||
import eu.dnetlib.dhp.oa.graph.dump.exceptions.NoAvailableEntityTypeException;
|
import eu.dnetlib.dhp.oa.graph.dump.exceptions.NoAvailableEntityTypeException;
|
||||||
|
import eu.dnetlib.dhp.oa.zenodoapi.MissingConceptDoiException;
|
||||||
|
import eu.dnetlib.dhp.oa.zenodoapi.ZenodoAPIClient;
|
||||||
|
|
||||||
public class SendToZenodoHDFS implements Serializable {
|
public class SendToZenodoHDFS implements Serializable {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import okhttp3.MediaType;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
import okhttp3.internal.Util;
|
||||||
|
import okio.BufferedSink;
|
||||||
|
import okio.Okio;
|
||||||
|
import okio.Source;
|
||||||
|
|
||||||
|
public class InputStreamRequestBody extends RequestBody {
|
||||||
|
|
||||||
|
private final InputStream inputStream;
|
||||||
|
private final MediaType mediaType;
|
||||||
|
private final long lenght;
|
||||||
|
|
||||||
|
public static RequestBody create(final MediaType mediaType, final InputStream inputStream, final long len) {
|
||||||
|
|
||||||
|
return new InputStreamRequestBody(inputStream, mediaType, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
private InputStreamRequestBody(InputStream inputStream, MediaType mediaType, long len) {
|
||||||
|
this.inputStream = inputStream;
|
||||||
|
this.mediaType = mediaType;
|
||||||
|
this.lenght = len;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MediaType contentType() {
|
||||||
|
return mediaType;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long contentLength() {
|
||||||
|
|
||||||
|
return lenght;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeTo(BufferedSink sink) throws IOException {
|
||||||
|
Source source = null;
|
||||||
|
try {
|
||||||
|
source = Okio.source(inputStream);
|
||||||
|
sink.writeAll(source);
|
||||||
|
} finally {
|
||||||
|
Util.closeQuietly(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi;
|
||||||
|
|
||||||
|
public class MissingConceptDoiException extends Throwable {
|
||||||
|
public MissingConceptDoiException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,403 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.apache.http.HttpHeaders;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.methods.HttpPost;
|
||||||
|
import org.apache.http.client.methods.HttpPut;
|
||||||
|
import org.apache.http.client.utils.URIBuilder;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
import org.apache.http.entity.InputStreamEntity;
|
||||||
|
import org.apache.http.entity.StringEntity;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.oa.zenodoapi.model.ZenodoModel;
|
||||||
|
import eu.dnetlib.dhp.oa.zenodoapi.model.ZenodoModelList;
|
||||||
|
import okhttp3.*;
|
||||||
|
|
||||||
|
public class ZenodoAPIClient implements Serializable {
|
||||||
|
|
||||||
|
String urlString;
|
||||||
|
String bucket;
|
||||||
|
|
||||||
|
String deposition_id;
|
||||||
|
String access_token;
|
||||||
|
|
||||||
|
public static final MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
|
||||||
|
|
||||||
|
private static final MediaType MEDIA_TYPE_ZIP = MediaType.parse("application/zip");
|
||||||
|
|
||||||
|
public String getUrlString() {
|
||||||
|
return urlString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrlString(String urlString) {
|
||||||
|
this.urlString = urlString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBucket() {
|
||||||
|
return bucket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBucket(String bucket) {
|
||||||
|
this.bucket = bucket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeposition_id(String deposition_id) {
|
||||||
|
this.deposition_id = deposition_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZenodoAPIClient(String urlString, String access_token) {
|
||||||
|
|
||||||
|
this.urlString = urlString;
|
||||||
|
this.access_token = access_token;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Brand new deposition in Zenodo. It sets the deposition_id and the bucket where to store the files to upload
|
||||||
|
*
|
||||||
|
* @return response code
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public int newDeposition() throws IOException {
|
||||||
|
String json = "{}";
|
||||||
|
|
||||||
|
URL url = new URL(urlString);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestProperty(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
byte[] input = json.getBytes("utf-8");
|
||||||
|
os.write(input, 0, input.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
String body = getBody(conn);
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
conn.disconnect();
|
||||||
|
|
||||||
|
if (!checkOKStatus(responseCode))
|
||||||
|
throw new IOException("Unexpected code " + responseCode + body);
|
||||||
|
|
||||||
|
ZenodoModel newSubmission = new Gson().fromJson(body, ZenodoModel.class);
|
||||||
|
this.bucket = newSubmission.getLinks().getBucket();
|
||||||
|
this.deposition_id = newSubmission.getId();
|
||||||
|
|
||||||
|
return responseCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int uploadIS2(InputStream is, String fileName) throws IOException {
|
||||||
|
|
||||||
|
final String crlf = "\r\n";
|
||||||
|
final String twoHyphens = "--";
|
||||||
|
final String boundary = "*****";
|
||||||
|
|
||||||
|
HttpPut put = new HttpPut(bucket + "/" + fileName);
|
||||||
|
|
||||||
|
put.addHeader(HttpHeaders.CONTENT_TYPE, "application/zip");
|
||||||
|
put.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
|
||||||
|
put.setEntity(new InputStreamEntity(is));
|
||||||
|
|
||||||
|
int statusCode;
|
||||||
|
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||||
|
CloseableHttpResponse response = client.execute(put);
|
||||||
|
statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!checkOKStatus(statusCode)) {
|
||||||
|
throw new IOException("Unexpected code " + statusCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
return statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int publish() throws IOException {
|
||||||
|
String json = "{}";
|
||||||
|
HttpPost post = new HttpPost(urlString + "/" + deposition_id + "/actions/publish");
|
||||||
|
post.addHeader(HttpHeaders.CONTENT_TYPE, "application/json");
|
||||||
|
post.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
post.setEntity(new StringEntity(json));
|
||||||
|
int statusCode;
|
||||||
|
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||||
|
CloseableHttpResponse response = client.execute(post);
|
||||||
|
statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
}
|
||||||
|
if (!checkOKStatus(statusCode)) {
|
||||||
|
throw new IOException("Unexpected code " + statusCode);
|
||||||
|
}
|
||||||
|
return statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload files in Zenodo.
|
||||||
|
*
|
||||||
|
* @param is the inputStream for the file to upload
|
||||||
|
* @param file_name the name of the file as it will appear on Zenodo
|
||||||
|
* @return the response code
|
||||||
|
*/
|
||||||
|
public int uploadIS(InputStream is, String file_name) throws IOException {
|
||||||
|
|
||||||
|
URL url = new URL(bucket + "/" + file_name);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestProperty(HttpHeaders.CONTENT_TYPE, "application/zip");
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestMethod("PUT");
|
||||||
|
|
||||||
|
byte[] buf = new byte[8192];
|
||||||
|
int length;
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
while ((length = is.read(buf)) != -1) {
|
||||||
|
os.write(buf, 0, length);
|
||||||
|
os.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
if (!checkOKStatus(responseCode)) {
|
||||||
|
throw new IOException("Unexpected code " + responseCode + getBody(conn));
|
||||||
|
}
|
||||||
|
|
||||||
|
return responseCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private String getBody(HttpURLConnection conn) throws IOException {
|
||||||
|
String body = "{}";
|
||||||
|
try (BufferedReader br = new BufferedReader(
|
||||||
|
new InputStreamReader(conn.getInputStream(), "utf-8"))) {
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
String responseLine = null;
|
||||||
|
while ((responseLine = br.readLine()) != null) {
|
||||||
|
response.append(responseLine.trim());
|
||||||
|
}
|
||||||
|
|
||||||
|
body = response.toString();
|
||||||
|
|
||||||
|
}
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int uploadIS3(InputStream is, String file_name, long len) throws IOException {
|
||||||
|
OkHttpClient httpClient = new OkHttpClient.Builder()
|
||||||
|
.writeTimeout(600, TimeUnit.SECONDS)
|
||||||
|
.readTimeout(600, TimeUnit.SECONDS)
|
||||||
|
.connectTimeout(600, TimeUnit.SECONDS)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(bucket + "/" + file_name)
|
||||||
|
.addHeader(HttpHeaders.CONTENT_TYPE, "application/zip") // add request headers
|
||||||
|
.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + access_token)
|
||||||
|
.put(InputStreamRequestBody.create(MEDIA_TYPE_ZIP, is, len))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
try (Response response = httpClient.newCall(request).execute()) {
|
||||||
|
if (!response.isSuccessful())
|
||||||
|
throw new IOException("Unexpected code " + response + response.body().string());
|
||||||
|
return response.code();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Associates metadata information to the current deposition
|
||||||
|
*
|
||||||
|
* @param metadata the metadata
|
||||||
|
* @return response code
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public int sendMretadata(String metadata) throws IOException {
|
||||||
|
|
||||||
|
URL url = new URL(urlString + "/" + deposition_id);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestProperty(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestMethod("PUT");
|
||||||
|
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
byte[] input = metadata.getBytes("utf-8");
|
||||||
|
os.write(input, 0, input.length);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
final int responseCode = conn.getResponseCode();
|
||||||
|
conn.disconnect();
|
||||||
|
if (!checkOKStatus(responseCode))
|
||||||
|
throw new IOException("Unexpected code " + responseCode + getBody(conn));
|
||||||
|
|
||||||
|
return responseCode;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkOKStatus(int responseCode) {
|
||||||
|
|
||||||
|
if (HttpURLConnection.HTTP_OK == responseCode ||
|
||||||
|
HttpURLConnection.HTTP_CREATED == responseCode)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To create a new version of an already published deposition. It sets the deposition_id and the bucket to be used
|
||||||
|
* for the new version.
|
||||||
|
*
|
||||||
|
* @param concept_rec_id the concept record id of the deposition for which to create a new version. It is the last
|
||||||
|
* part of the url for the DOI Zenodo suggests to use to cite all versions: DOI: 10.xxx/zenodo.656930
|
||||||
|
* concept_rec_id = 656930
|
||||||
|
* @return response code
|
||||||
|
* @throws IOException
|
||||||
|
* @throws MissingConceptDoiException
|
||||||
|
*/
|
||||||
|
public int newVersion(String concept_rec_id) throws Exception, MissingConceptDoiException {
|
||||||
|
setDepositionId(concept_rec_id, 1);
|
||||||
|
String json = "{}";
|
||||||
|
|
||||||
|
URL url = new URL(urlString + "/" + deposition_id + "/actions/newversion");
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
byte[] input = json.getBytes("utf-8");
|
||||||
|
os.write(input, 0, input.length);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String body = getBody(conn);
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
|
||||||
|
conn.disconnect();
|
||||||
|
if (!checkOKStatus(responseCode))
|
||||||
|
throw new IOException("Unexpected code " + responseCode + body);
|
||||||
|
|
||||||
|
ZenodoModel zenodoModel = new Gson().fromJson(body, ZenodoModel.class);
|
||||||
|
String latest_draft = zenodoModel.getLinks().getLatest_draft();
|
||||||
|
deposition_id = latest_draft.substring(latest_draft.lastIndexOf("/") + 1);
|
||||||
|
bucket = getBucket(latest_draft);
|
||||||
|
|
||||||
|
return responseCode;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To finish uploading a version or new deposition not published
|
||||||
|
* It sets the deposition_id and the bucket to be used
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param deposition_id the deposition id of the not yet published upload
|
||||||
|
* concept_rec_id = 656930
|
||||||
|
* @return response code
|
||||||
|
* @throws IOException
|
||||||
|
* @throws MissingConceptDoiException
|
||||||
|
*/
|
||||||
|
public int uploadOpenDeposition(String deposition_id) throws IOException, MissingConceptDoiException {
|
||||||
|
|
||||||
|
this.deposition_id = deposition_id;
|
||||||
|
|
||||||
|
String json = "{}";
|
||||||
|
|
||||||
|
URL url = new URL(urlString + "/" + deposition_id);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
try (OutputStream os = conn.getOutputStream()) {
|
||||||
|
byte[] input = json.getBytes("utf-8");
|
||||||
|
os.write(input, 0, input.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
String body = getBody(conn);
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
conn.disconnect();
|
||||||
|
|
||||||
|
if (!checkOKStatus(responseCode))
|
||||||
|
throw new IOException("Unexpected code " + responseCode + body);
|
||||||
|
|
||||||
|
ZenodoModel zenodoModel = new Gson().fromJson(body, ZenodoModel.class);
|
||||||
|
bucket = zenodoModel.getLinks().getBucket();
|
||||||
|
|
||||||
|
return responseCode;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDepositionId(String concept_rec_id, Integer page) throws Exception, MissingConceptDoiException {
|
||||||
|
|
||||||
|
ZenodoModelList zenodoModelList = new Gson()
|
||||||
|
.fromJson(getPrevDepositions(String.valueOf(page)), ZenodoModelList.class);
|
||||||
|
|
||||||
|
for (ZenodoModel zm : zenodoModelList) {
|
||||||
|
if (zm.getConceptrecid().equals(concept_rec_id)) {
|
||||||
|
deposition_id = zm.getId();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (zenodoModelList.size() == 0)
|
||||||
|
throw new MissingConceptDoiException(
|
||||||
|
"The concept record id specified was missing in the list of depositions");
|
||||||
|
setDepositionId(concept_rec_id, page + 1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getPrevDepositions(String page) throws Exception {
|
||||||
|
|
||||||
|
HttpGet get = new HttpGet(urlString);
|
||||||
|
URI uri = new URIBuilder(get.getURI()).addParameter("page", page).build();
|
||||||
|
|
||||||
|
get.setURI(uri);
|
||||||
|
|
||||||
|
get.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
get.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||||
|
CloseableHttpResponse response = client.execute(get);
|
||||||
|
final String body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
||||||
|
return body;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getBucket(String inputUurl) throws IOException {
|
||||||
|
|
||||||
|
URL url = new URL(inputUurl);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestProperty(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
conn.setRequestProperty(HttpHeaders.AUTHORIZATION, "Bearer " + access_token);
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestMethod("GET");
|
||||||
|
|
||||||
|
String body = getBody(conn);
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
|
||||||
|
conn.disconnect();
|
||||||
|
if (!checkOKStatus(responseCode))
|
||||||
|
throw new IOException("Unexpected code " + responseCode + body);
|
||||||
|
|
||||||
|
ZenodoModel zenodoModel = new Gson().fromJson(body, ZenodoModel.class);
|
||||||
|
|
||||||
|
return zenodoModel.getLinks().getBucket();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
public class Community {
|
||||||
|
private String identifier;
|
||||||
|
|
||||||
|
public String getIdentifier() {
|
||||||
|
return identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdentifier(String identifier) {
|
||||||
|
this.identifier = identifier;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
public class Creator {
|
||||||
|
private String affiliation;
|
||||||
|
private String name;
|
||||||
|
private String orcid;
|
||||||
|
|
||||||
|
public String getAffiliation() {
|
||||||
|
return affiliation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAffiliation(String affiliation) {
|
||||||
|
this.affiliation = affiliation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrcid() {
|
||||||
|
return orcid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrcid(String orcid) {
|
||||||
|
this.orcid = orcid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Creator newInstance(String name, String affiliation, String orcid) {
|
||||||
|
Creator c = new Creator();
|
||||||
|
if (name != null) {
|
||||||
|
c.name = name;
|
||||||
|
}
|
||||||
|
if (affiliation != null) {
|
||||||
|
c.affiliation = affiliation;
|
||||||
|
}
|
||||||
|
if (orcid != null) {
|
||||||
|
c.orcid = orcid;
|
||||||
|
}
|
||||||
|
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class File implements Serializable {
|
||||||
|
private String checksum;
|
||||||
|
private String filename;
|
||||||
|
private long filesize;
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
public String getChecksum() {
|
||||||
|
return checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChecksum(String checksum) {
|
||||||
|
this.checksum = checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFilename() {
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFilename(String filename) {
|
||||||
|
this.filename = filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getFilesize() {
|
||||||
|
return filesize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFilesize(long filesize) {
|
||||||
|
this.filesize = filesize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Grant implements Serializable {
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Grant newInstance(String id) {
|
||||||
|
Grant g = new Grant();
|
||||||
|
g.id = id;
|
||||||
|
|
||||||
|
return g;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Links implements Serializable {
|
||||||
|
|
||||||
|
private String bucket;
|
||||||
|
|
||||||
|
private String discard;
|
||||||
|
|
||||||
|
private String edit;
|
||||||
|
private String files;
|
||||||
|
private String html;
|
||||||
|
private String latest_draft;
|
||||||
|
private String latest_draft_html;
|
||||||
|
private String publish;
|
||||||
|
|
||||||
|
private String self;
|
||||||
|
|
||||||
|
public String getBucket() {
|
||||||
|
return bucket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBucket(String bucket) {
|
||||||
|
this.bucket = bucket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDiscard() {
|
||||||
|
return discard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDiscard(String discard) {
|
||||||
|
this.discard = discard;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEdit() {
|
||||||
|
return edit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEdit(String edit) {
|
||||||
|
this.edit = edit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFiles() {
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFiles(String files) {
|
||||||
|
this.files = files;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHtml() {
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHtml(String html) {
|
||||||
|
this.html = html;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLatest_draft() {
|
||||||
|
return latest_draft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLatest_draft(String latest_draft) {
|
||||||
|
this.latest_draft = latest_draft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLatest_draft_html() {
|
||||||
|
return latest_draft_html;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLatest_draft_html(String latest_draft_html) {
|
||||||
|
this.latest_draft_html = latest_draft_html;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPublish() {
|
||||||
|
return publish;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPublish(String publish) {
|
||||||
|
this.publish = publish;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelf() {
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelf(String self) {
|
||||||
|
this.self = self;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,161 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Metadata implements Serializable {
|
||||||
|
|
||||||
|
private String access_right;
|
||||||
|
private List<Community> communities;
|
||||||
|
private List<Creator> creators;
|
||||||
|
private String description;
|
||||||
|
private String doi;
|
||||||
|
private List<Grant> grants;
|
||||||
|
private List<String> keywords;
|
||||||
|
private String language;
|
||||||
|
private String license;
|
||||||
|
private PrereserveDoi prereserve_doi;
|
||||||
|
private String publication_date;
|
||||||
|
private List<String> references;
|
||||||
|
private List<RelatedIdentifier> related_identifiers;
|
||||||
|
private String title;
|
||||||
|
private String upload_type;
|
||||||
|
private String version;
|
||||||
|
|
||||||
|
public String getUpload_type() {
|
||||||
|
return upload_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpload_type(String upload_type) {
|
||||||
|
this.upload_type = upload_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(String version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAccess_right() {
|
||||||
|
return access_right;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccess_right(String access_right) {
|
||||||
|
this.access_right = access_right;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Community> getCommunities() {
|
||||||
|
return communities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommunities(List<Community> communities) {
|
||||||
|
this.communities = communities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Creator> getCreators() {
|
||||||
|
return creators;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreators(List<Creator> creators) {
|
||||||
|
this.creators = creators;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDoi() {
|
||||||
|
return doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDoi(String doi) {
|
||||||
|
this.doi = doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Grant> getGrants() {
|
||||||
|
return grants;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGrants(List<Grant> grants) {
|
||||||
|
this.grants = grants;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getKeywords() {
|
||||||
|
return keywords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKeywords(List<String> keywords) {
|
||||||
|
this.keywords = keywords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLanguage() {
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLanguage(String language) {
|
||||||
|
this.language = language;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLicense() {
|
||||||
|
return license;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLicense(String license) {
|
||||||
|
this.license = license;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrereserveDoi getPrereserve_doi() {
|
||||||
|
return prereserve_doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrereserve_doi(PrereserveDoi prereserve_doi) {
|
||||||
|
this.prereserve_doi = prereserve_doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPublication_date() {
|
||||||
|
return publication_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPublication_date(String publication_date) {
|
||||||
|
this.publication_date = publication_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getReferences() {
|
||||||
|
return references;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReferences(List<String> references) {
|
||||||
|
this.references = references;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<RelatedIdentifier> getRelated_identifiers() {
|
||||||
|
return related_identifiers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRelated_identifiers(List<RelatedIdentifier> related_identifiers) {
|
||||||
|
this.related_identifiers = related_identifiers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class PrereserveDoi implements Serializable {
|
||||||
|
private String doi;
|
||||||
|
private String recid;
|
||||||
|
|
||||||
|
public String getDoi() {
|
||||||
|
return doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDoi(String doi) {
|
||||||
|
this.doi = doi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRecid() {
|
||||||
|
return recid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecid(String recid) {
|
||||||
|
this.recid = recid;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class RelatedIdentifier implements Serializable {
|
||||||
|
private String identifier;
|
||||||
|
private String relation;
|
||||||
|
private String resource_type;
|
||||||
|
private String scheme;
|
||||||
|
|
||||||
|
public String getIdentifier() {
|
||||||
|
return identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdentifier(String identifier) {
|
||||||
|
this.identifier = identifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRelation() {
|
||||||
|
return relation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRelation(String relation) {
|
||||||
|
this.relation = relation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResource_type() {
|
||||||
|
return resource_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResource_type(String resource_type) {
|
||||||
|
this.resource_type = resource_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getScheme() {
|
||||||
|
return scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScheme(String scheme) {
|
||||||
|
this.scheme = scheme;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,126 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ZenodoModel implements Serializable {
|
||||||
|
|
||||||
|
private String conceptrecid;
|
||||||
|
private String created;
|
||||||
|
|
||||||
|
private List<File> files;
|
||||||
|
private String id;
|
||||||
|
private Links links;
|
||||||
|
private Metadata metadata;
|
||||||
|
private String modified;
|
||||||
|
private String owner;
|
||||||
|
private String record_id;
|
||||||
|
private String state;
|
||||||
|
private boolean submitted;
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
public String getConceptrecid() {
|
||||||
|
return conceptrecid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConceptrecid(String conceptrecid) {
|
||||||
|
this.conceptrecid = conceptrecid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreated() {
|
||||||
|
return created;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreated(String created) {
|
||||||
|
this.created = created;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<File> getFiles() {
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFiles(List<File> files) {
|
||||||
|
this.files = files;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Links getLinks() {
|
||||||
|
return links;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLinks(Links links) {
|
||||||
|
this.links = links;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Metadata getMetadata() {
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMetadata(Metadata metadata) {
|
||||||
|
this.metadata = metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModified() {
|
||||||
|
return modified;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModified(String modified) {
|
||||||
|
this.modified = modified;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOwner() {
|
||||||
|
return owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOwner(String owner) {
|
||||||
|
this.owner = owner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRecord_id() {
|
||||||
|
return record_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRecord_id(String record_id) {
|
||||||
|
this.record_id = record_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(String state) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSubmitted() {
|
||||||
|
return submitted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubmitted(boolean submitted) {
|
||||||
|
this.submitted = submitted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.oa.zenodoapi.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @author miriam.baglioni
|
||||||
|
* @Date 01/07/23
|
||||||
|
*/
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class ZenodoModelList extends ArrayList<ZenodoModel> {
|
||||||
|
}
|
Loading…
Reference in New Issue