forked from antonis.lempesis/dnet-hadoop
resolved conflicts
This commit is contained in:
commit
02b80cf24f
|
@ -6,7 +6,7 @@
|
||||||
<groupId>eu.dnetlib.dhp</groupId>
|
<groupId>eu.dnetlib.dhp</groupId>
|
||||||
<artifactId>dhp</artifactId>
|
<artifactId>dhp</artifactId>
|
||||||
<version>1.2.4-SNAPSHOT</version>
|
<version>1.2.4-SNAPSHOT</version>
|
||||||
<relativePath>../</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>dhp-common</artifactId>
|
<artifactId>dhp-common</artifactId>
|
||||||
|
@ -101,7 +101,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.dnetlib.dhp</groupId>
|
<groupId>eu.dnetlib.dhp</groupId>
|
||||||
<artifactId>dhp-schemas</artifactId>
|
<artifactId>dhp-schemas</artifactId>
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -1,119 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.data.mdstore.manager.common.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "mdstores")
|
|
||||||
public class MDStore implements Serializable {
|
|
||||||
|
|
||||||
/** */
|
|
||||||
private static final long serialVersionUID = 3160530489149700055L;
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@Column(name = "id")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Column(name = "format")
|
|
||||||
private String format;
|
|
||||||
|
|
||||||
@Column(name = "layout")
|
|
||||||
private String layout;
|
|
||||||
|
|
||||||
@Column(name = "interpretation")
|
|
||||||
private String interpretation;
|
|
||||||
|
|
||||||
@Column(name = "datasource_name")
|
|
||||||
private String datasourceName;
|
|
||||||
|
|
||||||
@Column(name = "datasource_id")
|
|
||||||
private String datasourceId;
|
|
||||||
|
|
||||||
@Column(name = "api_id")
|
|
||||||
private String apiId;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(final String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormat() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormat(final String format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLayout() {
|
|
||||||
return layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLayout(final String layout) {
|
|
||||||
this.layout = layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInterpretation() {
|
|
||||||
return interpretation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInterpretation(final String interpretation) {
|
|
||||||
this.interpretation = interpretation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatasourceName() {
|
|
||||||
return datasourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourceName(final String datasourceName) {
|
|
||||||
this.datasourceName = datasourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatasourceId() {
|
|
||||||
return datasourceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourceId(final String datasourceId) {
|
|
||||||
this.datasourceId = datasourceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getApiId() {
|
|
||||||
return apiId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApiId(final String apiId) {
|
|
||||||
this.apiId = apiId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MDStore newInstance(
|
|
||||||
final String format, final String layout, final String interpretation) {
|
|
||||||
return newInstance(format, layout, interpretation, null, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MDStore newInstance(
|
|
||||||
final String format,
|
|
||||||
final String layout,
|
|
||||||
final String interpretation,
|
|
||||||
final String dsName,
|
|
||||||
final String dsId,
|
|
||||||
final String apiId) {
|
|
||||||
final MDStore md = new MDStore();
|
|
||||||
md.setId("md-" + UUID.randomUUID());
|
|
||||||
md.setFormat(format);
|
|
||||||
md.setLayout(layout);
|
|
||||||
md.setInterpretation(interpretation);
|
|
||||||
md.setDatasourceName(dsName);
|
|
||||||
md.setDatasourceId(dsId);
|
|
||||||
md.setApiId(apiId);
|
|
||||||
return md;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.data.mdstore.manager.common.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "mdstore_current_versions")
|
|
||||||
public class MDStoreCurrentVersion implements Serializable {
|
|
||||||
|
|
||||||
/** */
|
|
||||||
private static final long serialVersionUID = -4757725888593745773L;
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@Column(name = "mdstore")
|
|
||||||
private String mdstore;
|
|
||||||
|
|
||||||
@Column(name = "current_version")
|
|
||||||
private String currentVersion;
|
|
||||||
|
|
||||||
public String getMdstore() {
|
|
||||||
return mdstore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMdstore(final String mdstore) {
|
|
||||||
this.mdstore = mdstore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCurrentVersion() {
|
|
||||||
return currentVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrentVersion(final String currentVersion) {
|
|
||||||
this.currentVersion = currentVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MDStoreCurrentVersion newInstance(final String mdId, final String versionId) {
|
|
||||||
final MDStoreCurrentVersion cv = new MDStoreCurrentVersion();
|
|
||||||
cv.setMdstore(mdId);
|
|
||||||
cv.setCurrentVersion(versionId);
|
|
||||||
return cv;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MDStoreCurrentVersion newInstance(final MDStoreVersion v) {
|
|
||||||
return newInstance(v.getMdstore(), v.getId());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.data.mdstore.manager.common.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import javax.persistence.Temporal;
|
|
||||||
import javax.persistence.TemporalType;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "mdstore_versions")
|
|
||||||
public class MDStoreVersion implements Serializable {
|
|
||||||
|
|
||||||
/** */
|
|
||||||
private static final long serialVersionUID = -4763494442274298339L;
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@Column(name = "id")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Column(name = "mdstore")
|
|
||||||
private String mdstore;
|
|
||||||
|
|
||||||
@Column(name = "writing")
|
|
||||||
private boolean writing;
|
|
||||||
|
|
||||||
@Column(name = "readcount")
|
|
||||||
private int readCount = 0;
|
|
||||||
|
|
||||||
@Column(name = "lastupdate")
|
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
|
||||||
private Date lastUpdate;
|
|
||||||
|
|
||||||
@Column(name = "size")
|
|
||||||
private long size = 0;
|
|
||||||
|
|
||||||
public static MDStoreVersion newInstance(final String mdId, final boolean writing) {
|
|
||||||
final MDStoreVersion t = new MDStoreVersion();
|
|
||||||
t.setId(mdId + "-" + new Date().getTime());
|
|
||||||
t.setMdstore(mdId);
|
|
||||||
t.setLastUpdate(null);
|
|
||||||
t.setWriting(writing);
|
|
||||||
t.setReadCount(0);
|
|
||||||
t.setSize(0);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(final String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMdstore() {
|
|
||||||
return mdstore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMdstore(final String mdstore) {
|
|
||||||
this.mdstore = mdstore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isWriting() {
|
|
||||||
return writing;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWriting(final boolean writing) {
|
|
||||||
this.writing = writing;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getReadCount() {
|
|
||||||
return readCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReadCount(final int readCount) {
|
|
||||||
this.readCount = readCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getLastUpdate() {
|
|
||||||
return lastUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastUpdate(final Date lastUpdate) {
|
|
||||||
this.lastUpdate = lastUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getSize() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSize(final long size) {
|
|
||||||
this.size = size;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,143 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.data.mdstore.manager.common.model;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
import javax.persistence.Temporal;
|
|
||||||
import javax.persistence.TemporalType;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "mdstores_with_info")
|
|
||||||
public class MDStoreWithInfo implements Serializable {
|
|
||||||
|
|
||||||
/** */
|
|
||||||
private static final long serialVersionUID = -8445784770687571492L;
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@Column(name = "id")
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@Column(name = "format")
|
|
||||||
private String format;
|
|
||||||
|
|
||||||
@Column(name = "layout")
|
|
||||||
private String layout;
|
|
||||||
|
|
||||||
@Column(name = "interpretation")
|
|
||||||
private String interpretation;
|
|
||||||
|
|
||||||
@Column(name = "datasource_name")
|
|
||||||
private String datasourceName;
|
|
||||||
|
|
||||||
@Column(name = "datasource_id")
|
|
||||||
private String datasourceId;
|
|
||||||
|
|
||||||
@Column(name = "api_id")
|
|
||||||
private String apiId;
|
|
||||||
|
|
||||||
@Column(name = "current_version")
|
|
||||||
private String currentVersion;
|
|
||||||
|
|
||||||
@Column(name = "lastupdate")
|
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
|
||||||
private Date lastUpdate;
|
|
||||||
|
|
||||||
@Column(name = "size")
|
|
||||||
private long size = 0;
|
|
||||||
|
|
||||||
@Column(name = "n_versions")
|
|
||||||
private long numberOfVersions = 0;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(final String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormat() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormat(final String format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLayout() {
|
|
||||||
return layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLayout(final String layout) {
|
|
||||||
this.layout = layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInterpretation() {
|
|
||||||
return interpretation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInterpretation(final String interpretation) {
|
|
||||||
this.interpretation = interpretation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatasourceName() {
|
|
||||||
return datasourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourceName(final String datasourceName) {
|
|
||||||
this.datasourceName = datasourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatasourceId() {
|
|
||||||
return datasourceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourceId(final String datasourceId) {
|
|
||||||
this.datasourceId = datasourceId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getApiId() {
|
|
||||||
return apiId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApiId(final String apiId) {
|
|
||||||
this.apiId = apiId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCurrentVersion() {
|
|
||||||
return currentVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrentVersion(final String currentVersion) {
|
|
||||||
this.currentVersion = currentVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getLastUpdate() {
|
|
||||||
return lastUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastUpdate(final Date lastUpdate) {
|
|
||||||
this.lastUpdate = lastUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getSize() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSize(final long size) {
|
|
||||||
this.size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getNumberOfVersions() {
|
|
||||||
return numberOfVersions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNumberOfVersions(final long numberOfVersions) {
|
|
||||||
this.numberOfVersions = numberOfVersions;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,6 +13,8 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelSupport;
|
import eu.dnetlib.dhp.schema.common.ModelSupport;
|
||||||
import eu.dnetlib.dhp.utils.DHPUtils;
|
import eu.dnetlib.dhp.utils.DHPUtils;
|
||||||
|
|
||||||
|
@ -183,7 +185,8 @@ public class OafMapperUtils {
|
||||||
final String issnOnline,
|
final String issnOnline,
|
||||||
final String issnLinking,
|
final String issnLinking,
|
||||||
final DataInfo dataInfo) {
|
final DataInfo dataInfo) {
|
||||||
return journal(
|
|
||||||
|
return hasIssn(issnPrinted, issnOnline, issnLinking) ? journal(
|
||||||
name,
|
name,
|
||||||
issnPrinted,
|
issnPrinted,
|
||||||
issnOnline,
|
issnOnline,
|
||||||
|
@ -195,7 +198,7 @@ public class OafMapperUtils {
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
dataInfo);
|
dataInfo) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Journal journal(
|
public static Journal journal(
|
||||||
|
@ -212,10 +215,7 @@ public class OafMapperUtils {
|
||||||
final String conferencedate,
|
final String conferencedate,
|
||||||
final DataInfo dataInfo) {
|
final DataInfo dataInfo) {
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(name)
|
if (StringUtils.isNotBlank(name) || hasIssn(issnPrinted, issnOnline, issnLinking)) {
|
||||||
|| StringUtils.isNotBlank(issnPrinted)
|
|
||||||
|| StringUtils.isNotBlank(issnOnline)
|
|
||||||
|| StringUtils.isNotBlank(issnLinking)) {
|
|
||||||
final Journal j = new Journal();
|
final Journal j = new Journal();
|
||||||
j.setName(name);
|
j.setName(name);
|
||||||
j.setIssnPrinted(issnPrinted);
|
j.setIssnPrinted(issnPrinted);
|
||||||
|
@ -235,6 +235,12 @@ public class OafMapperUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean hasIssn(String issnPrinted, String issnOnline, String issnLinking) {
|
||||||
|
return StringUtils.isNotBlank(issnPrinted)
|
||||||
|
|| StringUtils.isNotBlank(issnOnline)
|
||||||
|
|| StringUtils.isNotBlank(issnLinking);
|
||||||
|
}
|
||||||
|
|
||||||
public static DataInfo dataInfo(
|
public static DataInfo dataInfo(
|
||||||
final Boolean deletedbyinference,
|
final Boolean deletedbyinference,
|
||||||
final String inferenceprovenance,
|
final String inferenceprovenance,
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.utils;
|
package eu.dnetlib.dhp.utils;
|
||||||
|
|
||||||
import java.util.Map;
|
import org.apache.cxf.endpoint.Client;
|
||||||
|
import org.apache.cxf.frontend.ClientProxy;
|
||||||
import javax.xml.ws.BindingProvider;
|
|
||||||
|
|
||||||
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
|
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
|
||||||
|
import org.apache.cxf.transport.http.HTTPConduit;
|
||||||
|
import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -31,20 +31,23 @@ public class ISLookupClientFactory {
|
||||||
|
|
||||||
final T service = (T) jaxWsProxyFactory.create();
|
final T service = (T) jaxWsProxyFactory.create();
|
||||||
|
|
||||||
if (service instanceof BindingProvider) {
|
Client client = ClientProxy.getClient(service);
|
||||||
|
if (client != null) {
|
||||||
|
HTTPConduit conduit = (HTTPConduit) client.getConduit();
|
||||||
|
HTTPClientPolicy policy = new HTTPClientPolicy();
|
||||||
|
|
||||||
log
|
log
|
||||||
.info(
|
.info(
|
||||||
"setting timeouts for {} to requestTimeout: {}, connectTimeout: {}",
|
String
|
||||||
BindingProvider.class.getName(), requestTimeout, connectTimeout);
|
.format(
|
||||||
|
"setting connectTimeout to %s, requestTimeout to %s for service %s",
|
||||||
|
connectTimeout,
|
||||||
|
requestTimeout,
|
||||||
|
clazz.getCanonicalName()));
|
||||||
|
|
||||||
Map<String, Object> requestContext = ((BindingProvider) service).getRequestContext();
|
policy.setConnectionTimeout(connectTimeout);
|
||||||
|
policy.setReceiveTimeout(requestTimeout);
|
||||||
requestContext.put("com.sun.xml.internal.ws.request.timeout", requestTimeout);
|
conduit.setClient(policy);
|
||||||
requestContext.put("com.sun.xml.internal.ws.connect.timeout", connectTimeout);
|
|
||||||
requestContext.put("com.sun.xml.ws.request.timeout", requestTimeout);
|
|
||||||
requestContext.put("com.sun.xml.ws.connect.timeout", connectTimeout);
|
|
||||||
requestContext.put("javax.xml.ws.client.receiveTimeout", requestTimeout);
|
|
||||||
requestContext.put("javax.xml.ws.client.connectionTimeout", connectTimeout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return service;
|
return service;
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
Description of the project
|
|
||||||
--------------------------
|
|
||||||
This project defines **object schemas** of the OpenAIRE main entities and the relationships that intercur among them.
|
|
||||||
Namely it defines the model for
|
|
||||||
|
|
||||||
- **research product (result)** which subclasses in publication, dataset, other research product, software
|
|
||||||
- **data source** object describing the data provider (institutional repository, aggregators, cris systems)
|
|
||||||
- **organization** research bodies managing a data source or participating to a research project
|
|
||||||
- **project** research project
|
|
||||||
|
|
||||||
Te serialization of such objects (data store files) are used to pass data between workflow nodes in the processing pipeline.
|
|
|
@ -1,73 +0,0 @@
|
||||||
<?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>
|
|
||||||
<groupId>eu.dnetlib.dhp</groupId>
|
|
||||||
<artifactId>dhp</artifactId>
|
|
||||||
<version>1.2.4-SNAPSHOT</version>
|
|
||||||
<relativePath>../pom.xml</relativePath>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<artifactId>dhp-schemas</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
|
|
||||||
<description>This module contains common schema classes meant to be used across the dnet-hadoop submodules</description>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>net.alchim31.maven</groupId>
|
|
||||||
<artifactId>scala-maven-plugin</artifactId>
|
|
||||||
<version>4.0.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>scala-compile-first</id>
|
|
||||||
<phase>initialize</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>add-source</goal>
|
|
||||||
<goal>compile</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<id>scala-test-compile</id>
|
|
||||||
<phase>process-test-resources</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>testCompile</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
<configuration>
|
|
||||||
<scalaVersion>${scala.version}</scalaVersion>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-io</groupId>
|
|
||||||
<artifactId>commons-io</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-lang3</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
|
||||||
<artifactId>jackson-databind</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.google.guava</groupId>
|
|
||||||
<artifactId>guava</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,40 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.action;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
|
||||||
|
|
||||||
@JsonDeserialize(using = AtomicActionDeserializer.class)
|
|
||||||
public class AtomicAction<T extends Oaf> implements Serializable {
|
|
||||||
|
|
||||||
private Class<T> clazz;
|
|
||||||
|
|
||||||
private T payload;
|
|
||||||
|
|
||||||
public AtomicAction() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public AtomicAction(Class<T> clazz, T payload) {
|
|
||||||
this.clazz = clazz;
|
|
||||||
this.payload = payload;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Class<T> getClazz() {
|
|
||||||
return clazz;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClazz(Class<T> clazz) {
|
|
||||||
this.clazz = clazz;
|
|
||||||
}
|
|
||||||
|
|
||||||
public T getPayload() {
|
|
||||||
return payload;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPayload(T payload) {
|
|
||||||
this.payload = payload;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.action;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonParser;
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
|
||||||
import com.fasterxml.jackson.databind.JsonDeserializer;
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
|
||||||
|
|
||||||
public class AtomicActionDeserializer extends JsonDeserializer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object deserialize(JsonParser jp, DeserializationContext ctxt)
|
|
||||||
throws IOException {
|
|
||||||
JsonNode node = jp.getCodec().readTree(jp);
|
|
||||||
String classTag = node.get("clazz").asText();
|
|
||||||
JsonNode payload = node.get("payload");
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
|
||||||
|
|
||||||
try {
|
|
||||||
final Class<?> clazz = Class.forName(classTag);
|
|
||||||
return new AtomicAction(clazz, (Oaf) mapper.readValue(payload.toString(), clazz));
|
|
||||||
} catch (ClassNotFoundException e) {
|
|
||||||
throw new IOException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.OafEntity;
|
|
||||||
|
|
||||||
/** Actual entity types in the Graph */
|
|
||||||
public enum EntityType {
|
|
||||||
publication, dataset, otherresearchproduct, software, datasource, organization, project;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Resolves the EntityType, given the relative class name
|
|
||||||
*
|
|
||||||
* @param clazz the given class name
|
|
||||||
* @param <T> actual OafEntity subclass
|
|
||||||
* @return the EntityType associated to the given class
|
|
||||||
*/
|
|
||||||
public static <T extends OafEntity> EntityType fromClass(Class<T> clazz) {
|
|
||||||
|
|
||||||
return EntityType.valueOf(clazz.getSimpleName().toLowerCase());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,69 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
|
||||||
|
|
||||||
public class LicenseComparator implements Comparator<Qualifier> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compare(Qualifier left, Qualifier right) {
|
|
||||||
|
|
||||||
if (left == null && right == null)
|
|
||||||
return 0;
|
|
||||||
if (left == null)
|
|
||||||
return 1;
|
|
||||||
if (right == null)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
String lClass = left.getClassid();
|
|
||||||
String rClass = right.getClassid();
|
|
||||||
|
|
||||||
if (lClass.equals(rClass))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (lClass.equals("OPEN SOURCE"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("OPEN SOURCE"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("OPEN"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("OPEN"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("6MONTHS"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("6MONTHS"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("12MONTHS"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("12MONTHS"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("EMBARGO"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("EMBARGO"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("RESTRICTED"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("RESTRICTED"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("CLOSED"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("CLOSED"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lClass.equals("UNKNOWN"))
|
|
||||||
return -1;
|
|
||||||
if (rClass.equals("UNKNOWN"))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
// Else (but unlikely), lexicographical ordering will do.
|
|
||||||
return lClass.compareTo(rClass);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
/** Main entity types in the Graph */
|
|
||||||
public enum MainEntityType {
|
|
||||||
result, datasource, organization, project
|
|
||||||
}
|
|
|
@ -1,130 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.KeyValue;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
|
||||||
|
|
||||||
public class ModelConstants {
|
|
||||||
|
|
||||||
public static final String ORCID = "orcid";
|
|
||||||
public static final String ORCID_PENDING = "orcid_pending";
|
|
||||||
public static final String ORCID_CLASSNAME = "Open Researcher and Contributor ID";
|
|
||||||
|
|
||||||
public static final String DNET_SUBJECT_TYPOLOGIES = "dnet:subject_classification_typologies";
|
|
||||||
public static final String DNET_RESULT_TYPOLOGIES = "dnet:result_typologies";
|
|
||||||
public static final String DNET_PUBLICATION_RESOURCE = "dnet:publication_resource";
|
|
||||||
public static final String DNET_ACCESS_MODES = "dnet:access_modes";
|
|
||||||
public static final String DNET_LANGUAGES = "dnet:languages";
|
|
||||||
public static final String DNET_PID_TYPES = "dnet:pid_types";
|
|
||||||
public static final String DNET_DATA_CITE_DATE = "dnet:dataCite_date";
|
|
||||||
public static final String DNET_DATA_CITE_RESOURCE = "dnet:dataCite_resource";
|
|
||||||
public static final String DNET_PROVENANCE_ACTIONS = "dnet:provenanceActions";
|
|
||||||
public static final String DNET_COUNTRY_TYPE = "dnet:countries";
|
|
||||||
public static final String DNET_REVIEW_LEVELS = "dnet:review_levels";
|
|
||||||
|
|
||||||
public static final String SYSIMPORT_CROSSWALK_REPOSITORY = "sysimport:crosswalk:repository";
|
|
||||||
public static final String SYSIMPORT_CROSSWALK_ENTITYREGISTRY = "sysimport:crosswalk:entityregistry";
|
|
||||||
public static final String USER_CLAIM = "user:claim";
|
|
||||||
|
|
||||||
public static final String DATASET_RESULTTYPE_CLASSID = "dataset";
|
|
||||||
public static final String PUBLICATION_RESULTTYPE_CLASSID = "publication";
|
|
||||||
public static final String SOFTWARE_RESULTTYPE_CLASSID = "software";
|
|
||||||
public static final String ORP_RESULTTYPE_CLASSID = "other";
|
|
||||||
|
|
||||||
public static final String RESULT_RESULT = "resultResult";
|
|
||||||
/**
|
|
||||||
* @deprecated Use {@link ModelConstants#RELATIONSHIP} instead.
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public static final String PUBLICATION_DATASET = "publicationDataset";
|
|
||||||
public static final String IS_RELATED_TO = "isRelatedTo";
|
|
||||||
public static final String SUPPLEMENT = "supplement";
|
|
||||||
public static final String IS_SUPPLEMENT_TO = "isSupplementTo";
|
|
||||||
public static final String IS_SUPPLEMENTED_BY = "isSupplementedBy";
|
|
||||||
public static final String PART = "part";
|
|
||||||
public static final String IS_PART_OF = "isPartOf";
|
|
||||||
public static final String HAS_PARTS = "hasParts";
|
|
||||||
public static final String RELATIONSHIP = "relationship";
|
|
||||||
public static final String CITATION = "citation";
|
|
||||||
public static final String CITES = "cites";
|
|
||||||
public static final String IS_CITED_BY = "isCitedBy";
|
|
||||||
public static final String REVIEW = "review";
|
|
||||||
public static final String REVIEWS = "reviews";
|
|
||||||
public static final String IS_REVIEWED_BY = "isReviewedBy";
|
|
||||||
|
|
||||||
public static final String RESULT_PROJECT = "resultProject";
|
|
||||||
public static final String OUTCOME = "outcome";
|
|
||||||
public static final String IS_PRODUCED_BY = "isProducedBy";
|
|
||||||
public static final String PRODUCES = "produces";
|
|
||||||
|
|
||||||
public static final String DATASOURCE_ORGANIZATION = "datasourceOrganization";
|
|
||||||
public static final String PROVISION = "provision";
|
|
||||||
public static final String IS_PROVIDED_BY = "isProvidedBy";
|
|
||||||
public static final String PROVIDES = "provides";
|
|
||||||
|
|
||||||
public static final String PROJECT_ORGANIZATION = "projectOrganization";
|
|
||||||
public static final String PARTICIPATION = "participation";
|
|
||||||
public static final String HAS_PARTICIPANT = "hasParticipant";
|
|
||||||
public static final String IS_PARTICIPANT = "isParticipant";
|
|
||||||
|
|
||||||
public static final String RESULT_ORGANIZATION = "resultOrganization";
|
|
||||||
public static final String AFFILIATION = "affiliation";
|
|
||||||
public static final String IS_AUTHOR_INSTITUTION_OF = "isAuthorInstitutionOf";
|
|
||||||
public static final String HAS_AUTHOR_INSTITUTION = "hasAuthorInstitution";
|
|
||||||
|
|
||||||
public static final String MERGES = "merges";
|
|
||||||
|
|
||||||
public static final String UNKNOWN = "UNKNOWN";
|
|
||||||
public static final String NOT_AVAILABLE = "not available";
|
|
||||||
|
|
||||||
public static final Qualifier PUBLICATION_DEFAULT_RESULTTYPE = qualifier(
|
|
||||||
PUBLICATION_RESULTTYPE_CLASSID, PUBLICATION_RESULTTYPE_CLASSID,
|
|
||||||
DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES);
|
|
||||||
|
|
||||||
public static final Qualifier DATASET_DEFAULT_RESULTTYPE = qualifier(
|
|
||||||
DATASET_RESULTTYPE_CLASSID, DATASET_RESULTTYPE_CLASSID,
|
|
||||||
DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES);
|
|
||||||
|
|
||||||
public static final Qualifier SOFTWARE_DEFAULT_RESULTTYPE = qualifier(
|
|
||||||
SOFTWARE_RESULTTYPE_CLASSID, SOFTWARE_RESULTTYPE_CLASSID,
|
|
||||||
DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES);
|
|
||||||
|
|
||||||
public static final Qualifier ORP_DEFAULT_RESULTTYPE = qualifier(
|
|
||||||
ORP_RESULTTYPE_CLASSID, ORP_RESULTTYPE_CLASSID,
|
|
||||||
DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES);
|
|
||||||
|
|
||||||
public static final Qualifier REPOSITORY_PROVENANCE_ACTIONS = qualifier(
|
|
||||||
SYSIMPORT_CROSSWALK_REPOSITORY, SYSIMPORT_CROSSWALK_REPOSITORY,
|
|
||||||
DNET_PROVENANCE_ACTIONS, DNET_PROVENANCE_ACTIONS);
|
|
||||||
|
|
||||||
public static final Qualifier ENTITYREGISTRY_PROVENANCE_ACTION = qualifier(
|
|
||||||
SYSIMPORT_CROSSWALK_ENTITYREGISTRY, SYSIMPORT_CROSSWALK_ENTITYREGISTRY,
|
|
||||||
DNET_PROVENANCE_ACTIONS, DNET_PROVENANCE_ACTIONS);
|
|
||||||
|
|
||||||
public static final KeyValue UNKNOWN_REPOSITORY = keyValue(
|
|
||||||
"10|openaire____::55045bd2a65019fd8e6741a755395c8c", "Unknown Repository");
|
|
||||||
|
|
||||||
public static final Qualifier UNKNOWN_COUNTRY = qualifier(UNKNOWN, "Unknown", DNET_COUNTRY_TYPE, DNET_COUNTRY_TYPE);
|
|
||||||
|
|
||||||
private static Qualifier qualifier(
|
|
||||||
final String classid,
|
|
||||||
final String classname,
|
|
||||||
final String schemeid,
|
|
||||||
final String schemename) {
|
|
||||||
final Qualifier q = new Qualifier();
|
|
||||||
q.setClassid(classid);
|
|
||||||
q.setClassname(classname);
|
|
||||||
q.setSchemeid(schemeid);
|
|
||||||
q.setSchemename(schemename);
|
|
||||||
return q;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static KeyValue keyValue(String key, String value) {
|
|
||||||
KeyValue kv = new KeyValue();
|
|
||||||
kv.setKey(key);
|
|
||||||
kv.setValue(value);
|
|
||||||
kv.setDataInfo(new DataInfo());
|
|
||||||
return kv;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,501 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.time.temporal.TemporalAccessor;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.*;
|
|
||||||
|
|
||||||
/** Oaf model utility methods. */
|
|
||||||
public class ModelSupport {
|
|
||||||
|
|
||||||
/** Defines the mapping between the actual entity type and the main entity type */
|
|
||||||
private static Map<EntityType, MainEntityType> entityMapping = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
entityMapping.put(EntityType.publication, MainEntityType.result);
|
|
||||||
entityMapping.put(EntityType.dataset, MainEntityType.result);
|
|
||||||
entityMapping.put(EntityType.otherresearchproduct, MainEntityType.result);
|
|
||||||
entityMapping.put(EntityType.software, MainEntityType.result);
|
|
||||||
entityMapping.put(EntityType.datasource, MainEntityType.datasource);
|
|
||||||
entityMapping.put(EntityType.organization, MainEntityType.organization);
|
|
||||||
entityMapping.put(EntityType.project, MainEntityType.project);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines the mapping between the actual entity types and the relative classes implementing them
|
|
||||||
*/
|
|
||||||
public static final Map<EntityType, Class> entityTypes = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
entityTypes.put(EntityType.datasource, Datasource.class);
|
|
||||||
entityTypes.put(EntityType.organization, Organization.class);
|
|
||||||
entityTypes.put(EntityType.project, Project.class);
|
|
||||||
entityTypes.put(EntityType.dataset, Dataset.class);
|
|
||||||
entityTypes.put(EntityType.otherresearchproduct, OtherResearchProduct.class);
|
|
||||||
entityTypes.put(EntityType.software, Software.class);
|
|
||||||
entityTypes.put(EntityType.publication, Publication.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Map<String, Class> oafTypes = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
oafTypes.put("datasource", Datasource.class);
|
|
||||||
oafTypes.put("organization", Organization.class);
|
|
||||||
oafTypes.put("project", Project.class);
|
|
||||||
oafTypes.put("dataset", Dataset.class);
|
|
||||||
oafTypes.put("otherresearchproduct", OtherResearchProduct.class);
|
|
||||||
oafTypes.put("software", Software.class);
|
|
||||||
oafTypes.put("publication", Publication.class);
|
|
||||||
oafTypes.put("relation", Relation.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Map<Class, String> idPrefixMap = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
idPrefixMap.put(Datasource.class, "10");
|
|
||||||
idPrefixMap.put(Organization.class, "20");
|
|
||||||
idPrefixMap.put(Project.class, "40");
|
|
||||||
idPrefixMap.put(Dataset.class, "50");
|
|
||||||
idPrefixMap.put(OtherResearchProduct.class, "50");
|
|
||||||
idPrefixMap.put(Software.class, "50");
|
|
||||||
idPrefixMap.put(Publication.class, "50");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Map<String, String> entityIdPrefix = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
entityIdPrefix.put("datasource", "10");
|
|
||||||
entityIdPrefix.put("organization", "20");
|
|
||||||
entityIdPrefix.put("project", "40");
|
|
||||||
entityIdPrefix.put("result", "50");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Map<String, String> idPrefixEntity = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
idPrefixEntity.put("10", "datasource");
|
|
||||||
idPrefixEntity.put("20", "organization");
|
|
||||||
idPrefixEntity.put("40", "project");
|
|
||||||
idPrefixEntity.put("50", "result");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Map<String, RelationInverse> relationInverseMap = Maps.newHashMap();
|
|
||||||
|
|
||||||
static {
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personResult_authorship_isAuthorOf", new RelationInverse()
|
|
||||||
.setRelation("isAuthorOf")
|
|
||||||
.setInverse("hasAuthor")
|
|
||||||
.setRelType("personResult")
|
|
||||||
.setSubReltype("authorship"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personResult_authorship_hasAuthor", new RelationInverse()
|
|
||||||
.setInverse("isAuthorOf")
|
|
||||||
.setRelation("hasAuthor")
|
|
||||||
.setRelType("personResult")
|
|
||||||
.setSubReltype("authorship"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"projectOrganization_participation_isParticipant", new RelationInverse()
|
|
||||||
.setRelation("isParticipant")
|
|
||||||
.setInverse("hasParticipant")
|
|
||||||
.setRelType("projectOrganization")
|
|
||||||
.setSubReltype("participation"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"projectOrganization_participation_hasParticipant", new RelationInverse()
|
|
||||||
.setInverse("isParticipant")
|
|
||||||
.setRelation("hasParticipant")
|
|
||||||
.setRelType("projectOrganization")
|
|
||||||
.setSubReltype("participation"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultOrganization_affiliation_hasAuthorInstitution", new RelationInverse()
|
|
||||||
.setRelation("hasAuthorInstitution")
|
|
||||||
.setInverse("isAuthorInstitutionOf")
|
|
||||||
.setRelType("resultOrganization")
|
|
||||||
.setSubReltype("affiliation"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultOrganization_affiliation_isAuthorInstitutionOf", new RelationInverse()
|
|
||||||
.setInverse("hasAuthorInstitution")
|
|
||||||
.setRelation("isAuthorInstitutionOf")
|
|
||||||
.setRelType("resultOrganization")
|
|
||||||
.setSubReltype("affiliation"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"organizationOrganization_dedup_merges", new RelationInverse()
|
|
||||||
.setRelation("merges")
|
|
||||||
.setInverse("isMergedIn")
|
|
||||||
.setRelType("organizationOrganization")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"organizationOrganization_dedup_isMergedIn", new RelationInverse()
|
|
||||||
.setInverse("merges")
|
|
||||||
.setRelation("isMergedIn")
|
|
||||||
.setRelType("organizationOrganization")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"organizationOrganization_dedupSimilarity_isSimilarTo", new RelationInverse()
|
|
||||||
.setInverse("isSimilarTo")
|
|
||||||
.setRelation("isSimilarTo")
|
|
||||||
.setRelType("organizationOrganization")
|
|
||||||
.setSubReltype("dedupSimilarity"));
|
|
||||||
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultProject_outcome_isProducedBy", new RelationInverse()
|
|
||||||
.setRelation("isProducedBy")
|
|
||||||
.setInverse("produces")
|
|
||||||
.setRelType("resultProject")
|
|
||||||
.setSubReltype("outcome"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultProject_outcome_produces", new RelationInverse()
|
|
||||||
.setInverse("isProducedBy")
|
|
||||||
.setRelation("produces")
|
|
||||||
.setRelType("resultProject")
|
|
||||||
.setSubReltype("outcome"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"projectPerson_contactPerson_isContact", new RelationInverse()
|
|
||||||
.setRelation("isContact")
|
|
||||||
.setInverse("hasContact")
|
|
||||||
.setRelType("projectPerson")
|
|
||||||
.setSubReltype("contactPerson"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"projectPerson_contactPerson_hasContact", new RelationInverse()
|
|
||||||
.setInverse("isContact")
|
|
||||||
.setRelation("hasContact")
|
|
||||||
.setRelType("personPerson")
|
|
||||||
.setSubReltype("coAuthorship"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personPerson_coAuthorship_isCoauthorOf", new RelationInverse()
|
|
||||||
.setInverse("isCoAuthorOf")
|
|
||||||
.setRelation("isCoAuthorOf")
|
|
||||||
.setRelType("personPerson")
|
|
||||||
.setSubReltype("coAuthorship"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personPerson_dedup_merges", new RelationInverse()
|
|
||||||
.setInverse("isMergedIn")
|
|
||||||
.setRelation("merges")
|
|
||||||
.setRelType("personPerson")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personPerson_dedup_isMergedIn", new RelationInverse()
|
|
||||||
.setInverse("merges")
|
|
||||||
.setRelation("isMergedIn")
|
|
||||||
.setRelType("personPerson")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"personPerson_dedupSimilarity_isSimilarTo", new RelationInverse()
|
|
||||||
.setInverse("isSimilarTo")
|
|
||||||
.setRelation("isSimilarTo")
|
|
||||||
.setRelType("personPerson")
|
|
||||||
.setSubReltype("dedupSimilarity"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"datasourceOrganization_provision_isProvidedBy", new RelationInverse()
|
|
||||||
.setInverse("provides")
|
|
||||||
.setRelation("isProvidedBy")
|
|
||||||
.setRelType("datasourceOrganization")
|
|
||||||
.setSubReltype("provision"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"datasourceOrganization_provision_provides", new RelationInverse()
|
|
||||||
.setInverse("isProvidedBy")
|
|
||||||
.setRelation("provides")
|
|
||||||
.setRelType("datasourceOrganization")
|
|
||||||
.setSubReltype("provision"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_similarity_hasAmongTopNSimilarDocuments", new RelationInverse()
|
|
||||||
.setInverse("isAmongTopNSimilarDocuments")
|
|
||||||
.setRelation("hasAmongTopNSimilarDocuments")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("similarity"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_similarity_isAmongTopNSimilarDocuments", new RelationInverse()
|
|
||||||
.setInverse("hasAmongTopNSimilarDocuments")
|
|
||||||
.setRelation("isAmongTopNSimilarDocuments")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("similarity"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_relationship_isRelatedTo", new RelationInverse()
|
|
||||||
.setInverse("isRelatedTo")
|
|
||||||
.setRelation("isRelatedTo")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("relationship"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_similarity_isAmongTopNSimilarDocuments", new RelationInverse()
|
|
||||||
.setInverse("hasAmongTopNSimilarDocuments")
|
|
||||||
.setRelation("isAmongTopNSimilarDocuments")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("similarity"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_supplement_isSupplementTo", new RelationInverse()
|
|
||||||
.setInverse("isSupplementedBy")
|
|
||||||
.setRelation("isSupplementTo")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("supplement"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_supplement_isSupplementedBy", new RelationInverse()
|
|
||||||
.setInverse("isSupplementTo")
|
|
||||||
.setRelation("isSupplementedBy")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("supplement"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_part_isPartOf", new RelationInverse()
|
|
||||||
.setInverse("hasPart")
|
|
||||||
.setRelation("isPartOf")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("part"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_part_hasPart", new RelationInverse()
|
|
||||||
.setInverse("isPartOf")
|
|
||||||
.setRelation("hasPart")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("part"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_dedup_merges", new RelationInverse()
|
|
||||||
.setInverse("isMergedIn")
|
|
||||||
.setRelation("merges")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_dedup_isMergedIn", new RelationInverse()
|
|
||||||
.setInverse("merges")
|
|
||||||
.setRelation("isMergedIn")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("dedup"));
|
|
||||||
relationInverseMap
|
|
||||||
.put(
|
|
||||||
"resultResult_dedupSimilarity_isSimilarTo", new RelationInverse()
|
|
||||||
.setInverse("isSimilarTo")
|
|
||||||
.setRelation("isSimilarTo")
|
|
||||||
.setRelType("resultResult")
|
|
||||||
.setSubReltype("dedupSimilarity"));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final String schemeTemplate = "dnet:%s_%s_relations";
|
|
||||||
|
|
||||||
private ModelSupport() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <E extends OafEntity> String getIdPrefix(Class<E> clazz) {
|
|
||||||
return idPrefixMap.get(clazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks subclass-superclass relationship.
|
|
||||||
*
|
|
||||||
* @param subClazzObject Subclass object instance
|
|
||||||
* @param superClazzObject Superclass object instance
|
|
||||||
* @param <X> Subclass type
|
|
||||||
* @param <Y> Superclass type
|
|
||||||
* @return True if X is a subclass of Y
|
|
||||||
*/
|
|
||||||
public static <X extends Oaf, Y extends Oaf> Boolean isSubClass(
|
|
||||||
X subClazzObject, Y superClazzObject) {
|
|
||||||
return isSubClass(subClazzObject.getClass(), superClazzObject.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks subclass-superclass relationship.
|
|
||||||
*
|
|
||||||
* @param subClazzObject Subclass object instance
|
|
||||||
* @param superClazz Superclass class
|
|
||||||
* @param <X> Subclass type
|
|
||||||
* @param <Y> Superclass type
|
|
||||||
* @return True if X is a subclass of Y
|
|
||||||
*/
|
|
||||||
public static <X extends Oaf, Y extends Oaf> Boolean isSubClass(
|
|
||||||
X subClazzObject, Class<Y> superClazz) {
|
|
||||||
return isSubClass(subClazzObject.getClass(), superClazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks subclass-superclass relationship.
|
|
||||||
*
|
|
||||||
* @param subClazz Subclass class
|
|
||||||
* @param superClazz Superclass class
|
|
||||||
* @param <X> Subclass type
|
|
||||||
* @param <Y> Superclass type
|
|
||||||
* @return True if X is a subclass of Y
|
|
||||||
*/
|
|
||||||
public static <X extends Oaf, Y extends Oaf> Boolean isSubClass(
|
|
||||||
Class<X> subClazz, Class<Y> superClazz) {
|
|
||||||
return superClazz.isAssignableFrom(subClazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lists all the OAF model classes
|
|
||||||
*
|
|
||||||
* @param <T>
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static <T extends Oaf> Class<T>[] getOafModelClasses() {
|
|
||||||
return new Class[] {
|
|
||||||
Author.class,
|
|
||||||
Context.class,
|
|
||||||
Country.class,
|
|
||||||
DataInfo.class,
|
|
||||||
Dataset.class,
|
|
||||||
Datasource.class,
|
|
||||||
ExternalReference.class,
|
|
||||||
ExtraInfo.class,
|
|
||||||
Field.class,
|
|
||||||
GeoLocation.class,
|
|
||||||
Instance.class,
|
|
||||||
Journal.class,
|
|
||||||
KeyValue.class,
|
|
||||||
Oaf.class,
|
|
||||||
OafEntity.class,
|
|
||||||
OAIProvenance.class,
|
|
||||||
Organization.class,
|
|
||||||
OriginDescription.class,
|
|
||||||
OtherResearchProduct.class,
|
|
||||||
Project.class,
|
|
||||||
Publication.class,
|
|
||||||
Qualifier.class,
|
|
||||||
Relation.class,
|
|
||||||
Result.class,
|
|
||||||
Software.class,
|
|
||||||
StructuredProperty.class
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getMainType(final EntityType type) {
|
|
||||||
return entityMapping.get(type).name();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isResult(EntityType type) {
|
|
||||||
return MainEntityType.result.name().equals(getMainType(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getScheme(final String sourceType, final String targetType) {
|
|
||||||
return String
|
|
||||||
.format(
|
|
||||||
schemeTemplate,
|
|
||||||
entityMapping.get(EntityType.valueOf(sourceType)).name(),
|
|
||||||
entityMapping.get(EntityType.valueOf(targetType)).name());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T extends Oaf> String tableIdentifier(String dbName, String tableName) {
|
|
||||||
|
|
||||||
checkArgument(StringUtils.isNotBlank(dbName), "DB name cannot be empty");
|
|
||||||
checkArgument(StringUtils.isNotBlank(tableName), "table name cannot be empty");
|
|
||||||
|
|
||||||
return String.format("%s.%s", dbName, tableName);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T extends Oaf> String tableIdentifier(String dbName, Class<T> clazz) {
|
|
||||||
|
|
||||||
checkArgument(Objects.nonNull(clazz), "clazz is needed to derive the table name, thus cannot be null");
|
|
||||||
|
|
||||||
return tableIdentifier(dbName, clazz.getSimpleName().toLowerCase());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T extends Oaf> Function<T, String> idFn() {
|
|
||||||
return x -> {
|
|
||||||
if (isSubClass(x, Relation.class)) {
|
|
||||||
return idFnForRelation(x);
|
|
||||||
}
|
|
||||||
return idFnForOafEntity(x);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T extends Oaf> String idFnForRelation(T t) {
|
|
||||||
Relation r = (Relation) t;
|
|
||||||
return Optional
|
|
||||||
.ofNullable(r.getSource())
|
|
||||||
.map(
|
|
||||||
source -> Optional
|
|
||||||
.ofNullable(r.getTarget())
|
|
||||||
.map(
|
|
||||||
target -> Optional
|
|
||||||
.ofNullable(r.getRelType())
|
|
||||||
.map(
|
|
||||||
relType -> Optional
|
|
||||||
.ofNullable(r.getSubRelType())
|
|
||||||
.map(
|
|
||||||
subRelType -> Optional
|
|
||||||
.ofNullable(r.getRelClass())
|
|
||||||
.map(
|
|
||||||
relClass -> String
|
|
||||||
.join(
|
|
||||||
source,
|
|
||||||
target,
|
|
||||||
relType,
|
|
||||||
subRelType,
|
|
||||||
relClass))
|
|
||||||
.orElse(
|
|
||||||
String
|
|
||||||
.join(
|
|
||||||
source,
|
|
||||||
target,
|
|
||||||
relType,
|
|
||||||
subRelType)))
|
|
||||||
.orElse(String.join(source, target, relType)))
|
|
||||||
.orElse(String.join(source, target)))
|
|
||||||
.orElse(source))
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static <T extends Oaf> String idFnForOafEntity(T t) {
|
|
||||||
return ((OafEntity) t).getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String oldest(String dateA, String dateB) throws ParseException {
|
|
||||||
|
|
||||||
if (StringUtils.isBlank(dateA)) {
|
|
||||||
return dateB;
|
|
||||||
}
|
|
||||||
if (StringUtils.isBlank(dateB)) {
|
|
||||||
return dateA;
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(dateA) && StringUtils.isNotBlank(dateB)) {
|
|
||||||
|
|
||||||
final Date a = Date.from(Instant.from(DateTimeFormatter.ISO_INSTANT.parse(dateA)));
|
|
||||||
final Date b = Date.from(Instant.from(DateTimeFormatter.ISO_INSTANT.parse(dateB)));
|
|
||||||
|
|
||||||
return a.before(b) ? dateA : dateB;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
public class RelationInverse {
|
|
||||||
private String relation;
|
|
||||||
private String inverse;
|
|
||||||
private String relType;
|
|
||||||
private String subReltype;
|
|
||||||
|
|
||||||
public String getRelType() {
|
|
||||||
return relType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelationInverse setRelType(String relType) {
|
|
||||||
this.relType = relType;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSubReltype() {
|
|
||||||
return subReltype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelationInverse setSubReltype(String subReltype) {
|
|
||||||
this.subReltype = subReltype;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRelation() {
|
|
||||||
return relation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelationInverse setRelation(String relation) {
|
|
||||||
this.relation = relation;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInverse() {
|
|
||||||
return inverse;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelationInverse setInverse(String inverse) {
|
|
||||||
this.inverse = inverse;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to refer to the Article Processing Charge information. Not dumped in this release. It contains two parameters: -
|
|
||||||
* currency of type String to store the currency of the APC - amount of type String to stores the charged amount
|
|
||||||
*/
|
|
||||||
public class APC implements Serializable {
|
|
||||||
private String currency;
|
|
||||||
private String amount;
|
|
||||||
|
|
||||||
public String getCurrency() {
|
|
||||||
return currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrency(String currency) {
|
|
||||||
this.currency = currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAmount() {
|
|
||||||
return amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAmount(String amount) {
|
|
||||||
this.amount = amount;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* AccessRight. Used to represent the result access rights. It extends the eu.dnet.lib.dhp.schema.dump.oaf.Qualifier
|
|
||||||
* element with a parameter scheme of type String to store the scheme. Values for this element are found against the
|
|
||||||
* COAR access right scheme. The classid of the element accessright in eu.dnetlib.dhp.schema.oaf.Result is used to get
|
|
||||||
* the COAR corresponding code whose value will be used to set the code parameter. The COAR label corresponding to the
|
|
||||||
* COAR code will be used to set the label parameter. The scheme value will always be the one referring to the COAR
|
|
||||||
* access right scheme
|
|
||||||
*/
|
|
||||||
public class AccessRight extends Qualifier {
|
|
||||||
|
|
||||||
private String scheme;
|
|
||||||
|
|
||||||
public String getScheme() {
|
|
||||||
return scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setScheme(String scheme) {
|
|
||||||
this.scheme = scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static AccessRight newInstance(String code, String label, String scheme) {
|
|
||||||
AccessRight ar = new AccessRight();
|
|
||||||
ar.setCode(code);
|
|
||||||
ar.setLabel(label);
|
|
||||||
ar.setScheme(scheme);
|
|
||||||
return ar;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to represent the generic author of the result. It has six parameters: - name of type String to store the given
|
|
||||||
* name of the author. The value for this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author name - surname of
|
|
||||||
* type String to store the family name of the author. The value for this parameter corresponds to
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Author surname - fullname of type String to store the fullname of the author. The value for
|
|
||||||
* this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author fullname - rank of type Integer to store the rank on
|
|
||||||
* the author in the result's authors list. The value for this parameter corresponds to eu.dnetlib.dhp.schema.oaf.Author
|
|
||||||
* rank - pid of type eu.dnetlib.dhp.schema.dump.oaf.Pid to store the persistent identifier for the author. For the
|
|
||||||
* moment only ORCID identifiers will be dumped. - The id element is instantiated by using the following values in the
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Result pid: * Qualifier.classid for scheme * value for value - The provenance element is
|
|
||||||
* instantiated only if the dataInfo is set for the pid in the result to be dumped. The provenance element is
|
|
||||||
* instantiated by using the following values in the eu.dnetlib.dhp.schema.oaf.Result pid: *
|
|
||||||
* dataInfo.provenanceaction.classname for provenance * dataInfo.trust for trust
|
|
||||||
*/
|
|
||||||
public class Author implements Serializable {
|
|
||||||
|
|
||||||
private String fullname;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String surname;
|
|
||||||
|
|
||||||
private Integer rank;
|
|
||||||
|
|
||||||
private Pid pid;
|
|
||||||
|
|
||||||
public String getFullname() {
|
|
||||||
return fullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFullname(String fullname) {
|
|
||||||
this.fullname = fullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSurname() {
|
|
||||||
return surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSurname(String surname) {
|
|
||||||
this.surname = surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRank() {
|
|
||||||
return rank;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRank(Integer rank) {
|
|
||||||
this.rank = rank;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Pid getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(Pid pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,136 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the conference or journal where the result has been presented or published. It contains
|
|
||||||
* eleven parameters: - name of type String to store the name of the journal or conference. It corresponds to the
|
|
||||||
* parameter name of eu.dnetlib.dhp.schema.oaf.Journal - issnPrinted ot type String to store the journal printed issn.
|
|
||||||
* It corresponds to the parameter issnPrinted of eu.dnetlib.dhp.schema.oaf.Journal - issnOnline of type String to store
|
|
||||||
* the journal online issn. It corresponds to the parameter issnOnline of eu.dnetlib.dhp.schema.oaf.Journal -
|
|
||||||
* issnLinking of type String to store the journal linking issn. It corresponds to the parameter issnLinking of
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Journal - ep of type String to store the end page. It corresponds to the parameter ep of
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Journal - iss of type String to store the journal issue. It corresponds to the parameter
|
|
||||||
* iss of eu.dnetlib.dhp.schema.oaf.Journal - sp of type String to store the start page. It corresponds to the parameter
|
|
||||||
* sp of eu.dnetlib.dhp.schema.oaf.Journal - vol of type String to store the Volume. It corresponds to the parameter vol
|
|
||||||
* of eu.dnetlib.dhp.schema.oaf.Journal - edition of type String to store the edition of the journal or conference
|
|
||||||
* proceeding. It corresponds to the parameter edition of eu.dnetlib.dhp.schema.oaf.Journal - conferenceplace of type
|
|
||||||
* String to store the place of the conference. It corresponds to the parameter conferenceplace of
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Journal - conferencedate of type String to store the date of the conference. It corresponds
|
|
||||||
* to the parameter conferencedate of eu.dnetlib.dhp.schema.oaf.Journal
|
|
||||||
*/
|
|
||||||
public class Container implements Serializable {
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String issnPrinted;
|
|
||||||
|
|
||||||
private String issnOnline;
|
|
||||||
|
|
||||||
private String issnLinking;
|
|
||||||
|
|
||||||
private String ep;
|
|
||||||
|
|
||||||
private String iss;
|
|
||||||
|
|
||||||
private String sp;
|
|
||||||
|
|
||||||
private String vol;
|
|
||||||
|
|
||||||
private String edition;
|
|
||||||
|
|
||||||
private String conferenceplace;
|
|
||||||
|
|
||||||
private String conferencedate;
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnPrinted() {
|
|
||||||
return issnPrinted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnPrinted(String issnPrinted) {
|
|
||||||
this.issnPrinted = issnPrinted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnOnline() {
|
|
||||||
return issnOnline;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnOnline(String issnOnline) {
|
|
||||||
this.issnOnline = issnOnline;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnLinking() {
|
|
||||||
return issnLinking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnLinking(String issnLinking) {
|
|
||||||
this.issnLinking = issnLinking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEp() {
|
|
||||||
return ep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEp(String ep) {
|
|
||||||
this.ep = ep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIss() {
|
|
||||||
return iss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIss(String iss) {
|
|
||||||
this.iss = iss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSp() {
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSp(String sp) {
|
|
||||||
this.sp = sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVol() {
|
|
||||||
return vol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVol(String vol) {
|
|
||||||
this.vol = vol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEdition() {
|
|
||||||
return edition;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEdition(String edition) {
|
|
||||||
this.edition = edition;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getConferenceplace() {
|
|
||||||
return conferenceplace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConferenceplace(String conferenceplace) {
|
|
||||||
this.conferenceplace = conferenceplace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getConferencedate() {
|
|
||||||
return conferencedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConferencedate(String conferencedate) {
|
|
||||||
this.conferencedate = conferencedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the information described by a scheme and a value in that scheme (i.e. pid). It has two parameters: -
|
|
||||||
* scheme of type String to store the scheme - value of type String to store the value in that scheme
|
|
||||||
*/
|
|
||||||
public class ControlledField implements Serializable {
|
|
||||||
private String 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 ControlledField newInstance(String scheme, String value) {
|
|
||||||
ControlledField cf = new ControlledField();
|
|
||||||
|
|
||||||
cf.setScheme(scheme);
|
|
||||||
cf.setValue(value);
|
|
||||||
|
|
||||||
return cf;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the country associated to this result. It extends eu.dnetlib.dhp.schema.dump.oaf.Qualifier with a
|
|
||||||
* provenance parameter of type eu.dnetlib.dhp.schema.dumo.oaf.Provenance. The country in not mapped if its value in the
|
|
||||||
* result reprensented in the internal format is Unknown. The value for this element correspond to: - code corresponds
|
|
||||||
* to the classid of eu.dnetlib.dhp.schema.oaf.Country - label corresponds to the classname of
|
|
||||||
* eu.dnetlib.dhp.schema.oaf.Country - provenance set only if the dataInfo associated to the Country of the result to be
|
|
||||||
* dumped is not null. In this case : - provenance corresponds to dataInfo.provenanceaction.classid (to be modified with
|
|
||||||
* datainfo.provenanceaction.classname) - trust corresponds to dataInfo.trust
|
|
||||||
*/
|
|
||||||
public class Country extends Qualifier {
|
|
||||||
|
|
||||||
private Provenance provenance;
|
|
||||||
|
|
||||||
public Provenance getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(Provenance provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Country newInstance(String code, String label, Provenance provenance) {
|
|
||||||
Country c = new Country();
|
|
||||||
c.setProvenance(provenance);
|
|
||||||
c.setCode(code);
|
|
||||||
c.setLabel(label);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Country newInstance(String code, String label, String provenance, String trust) {
|
|
||||||
return newInstance(code, label, Provenance.newInstance(provenance, trust));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class Funder implements Serializable {
|
|
||||||
private String shortName;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
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,53 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the geolocation information. It has three parameters: - point of type String to store the point
|
|
||||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation point - box ot type String to store the box
|
|
||||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation box - place of type String to store the place
|
|
||||||
* information. It corresponds to eu.dnetlib.dhp.schema.oaf.GeoLocation place
|
|
||||||
*/
|
|
||||||
public class GeoLocation implements Serializable {
|
|
||||||
|
|
||||||
private String point;
|
|
||||||
|
|
||||||
private String box;
|
|
||||||
|
|
||||||
private String place;
|
|
||||||
|
|
||||||
public String getPoint() {
|
|
||||||
return point;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPoint(String point) {
|
|
||||||
this.point = point;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBox() {
|
|
||||||
return box;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBox(String box) {
|
|
||||||
this.box = box;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPlace() {
|
|
||||||
return place;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlace(String place) {
|
|
||||||
this.place = place;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public boolean isBlank() {
|
|
||||||
return StringUtils.isBlank(point) && StringUtils.isBlank(box) && StringUtils.isBlank(place);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents the manifestations (i.e. different versions) of the result. For example: the pre-print and the published
|
|
||||||
* versions are two manifestations of the same research result. It has the following parameters: - license of type
|
|
||||||
* String to store the license applied to the instance. It corresponds to the value of the licence in the instance to be
|
|
||||||
* dumped - accessright of type eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store the accessright of the instance. -
|
|
||||||
* type of type String to store the type of the instance as defined in the corresponding dnet vocabulary
|
|
||||||
* (dnet:pubication_resource). It corresponds to the instancetype.classname of the instance to be mapped - url of type
|
|
||||||
* List<String> list of locations where the instance is accessible. It corresponds to url of the instance to be dumped -
|
|
||||||
* publicationdate of type String to store the publication date of the instance ;// dateofacceptance; - refereed of type
|
|
||||||
* String to store information abour tthe review status of the instance. Possible values are 'Unknown',
|
|
||||||
* 'nonPeerReviewed', 'peerReviewed'. It corresponds to refereed.classname of the instance to be dumped
|
|
||||||
*/
|
|
||||||
public class Instance implements Serializable {
|
|
||||||
|
|
||||||
private String license;
|
|
||||||
|
|
||||||
private AccessRight accessright;
|
|
||||||
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
private List<String> url;
|
|
||||||
|
|
||||||
private String publicationdate;// dateofacceptance;
|
|
||||||
|
|
||||||
private String refereed; // peer-review status
|
|
||||||
|
|
||||||
public String getLicense() {
|
|
||||||
return license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLicense(String license) {
|
|
||||||
this.license = license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AccessRight getAccessright() {
|
|
||||||
return accessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccessright(AccessRight accessright) {
|
|
||||||
this.accessright = accessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(List<String> url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPublicationdate() {
|
|
||||||
return publicationdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublicationdate(String publicationdate) {
|
|
||||||
this.publicationdate = publicationdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRefereed() {
|
|
||||||
return refereed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRefereed(String refereed) {
|
|
||||||
this.refereed = refereed;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the information described by a key and a value. It has two parameters: - key to store the key (generally
|
|
||||||
* the OpenAIRE id for some entity) - value to store the value (generally the OpenAIRE name for the key)
|
|
||||||
*/
|
|
||||||
public class KeyValue implements Serializable {
|
|
||||||
|
|
||||||
private String key;
|
|
||||||
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
public String getKey() {
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKey(String key) {
|
|
||||||
this.key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static KeyValue newInstance(String key, String value) {
|
|
||||||
KeyValue inst = new KeyValue();
|
|
||||||
inst.key = key;
|
|
||||||
inst.value = value;
|
|
||||||
return inst;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public boolean isBlank() {
|
|
||||||
return StringUtils.isBlank(key) && StringUtils.isBlank(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the generic persistent identifier. It has two parameters: - id of type
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.ControlledField to store the scheme and value of the Persistent Identifier. -
|
|
||||||
* provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store the provenance and trust of the information
|
|
||||||
*/
|
|
||||||
public class Pid implements Serializable {
|
|
||||||
private ControlledField id;
|
|
||||||
private Provenance provenance;
|
|
||||||
|
|
||||||
public ControlledField getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(ControlledField pid) {
|
|
||||||
this.id = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provenance getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(Provenance provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Pid newInstance(ControlledField pid, Provenance provenance) {
|
|
||||||
Pid p = new Pid();
|
|
||||||
p.id = pid;
|
|
||||||
p.provenance = provenance;
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Pid newInstance(ControlledField pid) {
|
|
||||||
Pid p = new Pid();
|
|
||||||
p.id = pid;
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 {
|
|
||||||
protected String id;// OpenAIRE id
|
|
||||||
protected String code;
|
|
||||||
|
|
||||||
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.schema.dump.oaf;
|
|
||||||
|
|
||||||
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,42 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the information described by a code and a value It has two parameters: - code to store the code
|
|
||||||
* (generally the classid of the eu.dnetlib.dhp.schema.oaf.Qualifier element) - label to store the label (generally the
|
|
||||||
* classname of the eu.dnetlib.dhp.schema.oaf.Qualifier element
|
|
||||||
*/
|
|
||||||
public class Qualifier implements Serializable {
|
|
||||||
|
|
||||||
private String code; // the classid in the Qualifier
|
|
||||||
private String label; // the classname in the Qualifier
|
|
||||||
|
|
||||||
public String getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(String code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Qualifier newInstance(String code, String value) {
|
|
||||||
Qualifier qualifier = new Qualifier();
|
|
||||||
qualifier.setCode(code);
|
|
||||||
qualifier.setLabel(value);
|
|
||||||
return qualifier;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,379 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.community.Project;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the dumped result. It will be extended in the dump for Research Communities - Research
|
|
||||||
* Initiative/Infrastructures. It has the following parameters: - author of type
|
|
||||||
* List<eu.dnetlib.dhpschema.dump.oaf.Author> to describe the authors of a result. For each author in the result
|
|
||||||
* represented in the internal model one author in the esternal model is produced. - type of type String to represent
|
|
||||||
* the category of the result. Possible values are publication, dataset, software, other. It corresponds to
|
|
||||||
* resulttype.classname of the dumped result - language of type eu.dnetlib.dhp.schema.dump.oaf.Qualifier to store
|
|
||||||
* information about the language of the result. It is dumped as - code corresponds to language.classid - value
|
|
||||||
* corresponds to language.classname - country of type List<eu.dnetlib.dhp.schema.dump.oaf.Country> to store the country
|
|
||||||
* list to which the result is associated. For each country in the result respresented in the internal model one country
|
|
||||||
* in the external model is produces - subjects of type List<eu.dnetlib.dhp.dump.oaf.Subject> to store the subjects for
|
|
||||||
* the result. For each subject in the result represented in the internal model one subject in the external model is
|
|
||||||
* produced - maintitle of type String to store the main title of the result. It corresponds to the value of the first
|
|
||||||
* title in the resul to be dumped having classid equals to "main title" - subtitle of type String to store the subtitle
|
|
||||||
* of the result. It corresponds to the value of the first title in the resul to be dumped having classid equals to
|
|
||||||
* "subtitle" - description of type List<String> to store the description of the result. It corresponds to the list of
|
|
||||||
* description.value in the result represented in the internal model - publicationdate of type String to store the
|
|
||||||
* pubblication date. It corresponds to dateofacceptance.value in the result represented in the internal model -
|
|
||||||
* publisher of type String to store information about the publisher. It corresponds to publisher.value of the result
|
|
||||||
* represented in the intrenal model - embargoenddate of type String to store the embargo end date. It corresponds to
|
|
||||||
* embargoenddate.value of the result represented in the internal model - source of type List<String> See definition of
|
|
||||||
* Dublin Core field dc:source. It corresponds to the list of source.value in the result represented in the internal
|
|
||||||
* model - format of type List<String> It corresponds to the list of format.value in the result represented in the
|
|
||||||
* internal model - contributor of type List<String> to represent contributors for this result. It corresponds to the
|
|
||||||
* list of contributor.value in the result represented in the internal model - coverage of type String. It corresponds
|
|
||||||
* to the list of coverage.value in the result represented in the internal model - bestaccessright of type
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.AccessRight to store informatin about the openest access right associated to the
|
|
||||||
* manifestations of this research results. It corresponds to the same parameter in the result represented in the
|
|
||||||
* internal model - container of type eu.dnetlib.dhp.schema/dump.oaf.Container (only for result of type publication). It
|
|
||||||
* corresponds to the parameter journal of the result represented in the internal model - documentationUrl of type
|
|
||||||
* List<String> (only for results of type software) to store the URLs to the software documentation. It corresponds to
|
|
||||||
* the list of documentationUrl.value of the result represented in the internal model - codeRepositoryUrl of type String
|
|
||||||
* (only for results of type software) to store the URL to the repository with the source code. It corresponds to
|
|
||||||
* codeRepositoryUrl.value of the result represented in the internal model - programmingLanguage of type String (only
|
|
||||||
* for results of type software) to store the programming language. It corresponds to programmingLanguaga.classid of the
|
|
||||||
* result represented in the internal model - contactperson of type List<String> (only for results of type other) to
|
|
||||||
* store the contact person for this result. It corresponds to the list of contactperson.value of the result represented
|
|
||||||
* in the internal model - contactgroup of type List<String> (only for results of type other) to store the information
|
|
||||||
* for the contact group. It corresponds to the list of contactgroup.value of the result represented in the internal
|
|
||||||
* model - tool of type List<String> (only fro results of type other) to store information about tool useful for the
|
|
||||||
* interpretation and/or re-used of the research product. It corresponds to the list of tool.value in the result
|
|
||||||
* represented in the internal modelt - size of type String (only for results of type dataset) to store the size of the
|
|
||||||
* dataset. It corresponds to size.value in the result represented in the internal model - version of type String (only
|
|
||||||
* for results of type dataset) to store the version. It corresponds to version.value of the result represented in the
|
|
||||||
* internal model - geolocation fo type List<eu.dnetlib.dhp.schema.dump.oaf.GeoLocation> (only for results of type
|
|
||||||
* dataset) to store geolocation information. For each geolocation element in the result represented in the internal
|
|
||||||
* model a GeoLocation in the external model il produced - id of type String to store the OpenAIRE id of the result. It
|
|
||||||
* corresponds to the id of the result represented in the internal model - originalId of type List<String> to store the
|
|
||||||
* original ids of the result. It corresponds to the originalId of the result represented in the internal model - pid of
|
|
||||||
* type List<eu.dnetlib.dhp.schema.dump.oaf.ControlledField> to store the persistent identifiers for the result. For
|
|
||||||
* each pid in the results represented in the internal model one pid in the external model is produced. The value
|
|
||||||
* correspondence is: - scheme corresponds to pid.qualifier.classid of the result represented in the internal model -
|
|
||||||
* value corresponds to the pid.value of the result represented in the internal model - dateofcollection of type String
|
|
||||||
* to store information about the time OpenAIRE collected the record. It corresponds to dateofcollection of the result
|
|
||||||
* represented in the internal model - lasteupdatetimestamp of type String to store the timestamp of the last update of
|
|
||||||
* the record. It corresponds to lastupdatetimestamp of the resord represented in the internal model
|
|
||||||
*/
|
|
||||||
public class Result implements Serializable {
|
|
||||||
|
|
||||||
private List<Author> author;
|
|
||||||
|
|
||||||
// resulttype allows subclassing results into publications | datasets | software
|
|
||||||
private String type; // resulttype
|
|
||||||
|
|
||||||
// common fields
|
|
||||||
private Qualifier language;
|
|
||||||
|
|
||||||
private List<Country> country;
|
|
||||||
|
|
||||||
private List<Subject> subjects;
|
|
||||||
|
|
||||||
private String maintitle;
|
|
||||||
|
|
||||||
private String subtitle;
|
|
||||||
|
|
||||||
private List<String> description;
|
|
||||||
|
|
||||||
private String publicationdate; // dateofacceptance;
|
|
||||||
|
|
||||||
private String publisher;
|
|
||||||
|
|
||||||
private String embargoenddate;
|
|
||||||
|
|
||||||
private List<String> source;
|
|
||||||
|
|
||||||
private List<String> format;
|
|
||||||
|
|
||||||
private List<String> contributor;
|
|
||||||
|
|
||||||
private List<String> coverage;
|
|
||||||
|
|
||||||
private AccessRight bestaccessright;
|
|
||||||
|
|
||||||
private Container container;// Journal
|
|
||||||
|
|
||||||
private List<String> documentationUrl; // software
|
|
||||||
|
|
||||||
private String codeRepositoryUrl; // software
|
|
||||||
|
|
||||||
private String programmingLanguage; // software
|
|
||||||
|
|
||||||
private List<String> contactperson; // orp
|
|
||||||
|
|
||||||
private List<String> contactgroup; // orp
|
|
||||||
|
|
||||||
private List<String> tool; // orp
|
|
||||||
|
|
||||||
private String size; // dataset
|
|
||||||
|
|
||||||
private String version; // dataset
|
|
||||||
|
|
||||||
private List<GeoLocation> geolocation; // dataset
|
|
||||||
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private List<String> originalId;
|
|
||||||
|
|
||||||
private List<ControlledField> pid;
|
|
||||||
|
|
||||||
private String dateofcollection;
|
|
||||||
|
|
||||||
private Long lastupdatetimestamp;
|
|
||||||
|
|
||||||
public Long getLastupdatetimestamp() {
|
|
||||||
return lastupdatetimestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastupdatetimestamp(Long lastupdatetimestamp) {
|
|
||||||
this.lastupdatetimestamp = lastupdatetimestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
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<ControlledField> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<ControlledField> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateofcollection() {
|
|
||||||
return dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofcollection(String dateofcollection) {
|
|
||||||
this.dateofcollection = dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Author> getAuthor() {
|
|
||||||
return author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Container getContainer() {
|
|
||||||
return container;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContainer(Container container) {
|
|
||||||
this.container = container;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuthor(List<Author> author) {
|
|
||||||
this.author = author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getLanguage() {
|
|
||||||
return language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLanguage(Qualifier language) {
|
|
||||||
this.language = language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Country> getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(List<Country> country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Subject> getSubjects() {
|
|
||||||
return subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubjects(List<Subject> subjects) {
|
|
||||||
this.subjects = subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMaintitle() {
|
|
||||||
return maintitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMaintitle(String maintitle) {
|
|
||||||
this.maintitle = maintitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSubtitle() {
|
|
||||||
return subtitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubtitle(String subtitle) {
|
|
||||||
this.subtitle = subtitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(List<String> description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPublicationdate() {
|
|
||||||
return publicationdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublicationdate(String publicationdate) {
|
|
||||||
this.publicationdate = publicationdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPublisher() {
|
|
||||||
return publisher;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublisher(String publisher) {
|
|
||||||
this.publisher = publisher;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmbargoenddate() {
|
|
||||||
return embargoenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmbargoenddate(String embargoenddate) {
|
|
||||||
this.embargoenddate = embargoenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getSource() {
|
|
||||||
return source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSource(List<String> source) {
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getFormat() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormat(List<String> format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getContributor() {
|
|
||||||
return contributor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContributor(List<String> contributor) {
|
|
||||||
this.contributor = contributor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getCoverage() {
|
|
||||||
return coverage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCoverage(List<String> coverage) {
|
|
||||||
this.coverage = coverage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AccessRight getBestaccessright() {
|
|
||||||
return bestaccessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBestaccessright(AccessRight bestaccessright) {
|
|
||||||
this.bestaccessright = bestaccessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getDocumentationUrl() {
|
|
||||||
return documentationUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDocumentationUrl(List<String> documentationUrl) {
|
|
||||||
this.documentationUrl = documentationUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodeRepositoryUrl() {
|
|
||||||
return codeRepositoryUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodeRepositoryUrl(String codeRepositoryUrl) {
|
|
||||||
this.codeRepositoryUrl = codeRepositoryUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProgrammingLanguage() {
|
|
||||||
return programmingLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProgrammingLanguage(String programmingLanguage) {
|
|
||||||
this.programmingLanguage = programmingLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getContactperson() {
|
|
||||||
return contactperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactperson(List<String> contactperson) {
|
|
||||||
this.contactperson = contactperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getContactgroup() {
|
|
||||||
return contactgroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactgroup(List<String> contactgroup) {
|
|
||||||
this.contactgroup = contactgroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getTool() {
|
|
||||||
return tool;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTool(List<String> tool) {
|
|
||||||
this.tool = tool;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSize() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSize(String size) {
|
|
||||||
this.size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(String version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<GeoLocation> getGeolocation() {
|
|
||||||
return geolocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGeolocation(List<GeoLocation> geolocation) {
|
|
||||||
this.geolocation = geolocation;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent keywords associated to the result. It has two parameters: - subject of type
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.ControlledField to describe the subject. It mapped as: - schema it corresponds to
|
|
||||||
* qualifier.classid of the dumped subject - value it corresponds to the subject value - provenance of type
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.Provenance to represent the provenance of the subject. It is dumped only if dataInfo
|
|
||||||
* is not null. In this case: - provenance corresponds to dataInfo.provenanceaction.classname - trust corresponds to
|
|
||||||
* dataInfo.trust
|
|
||||||
*/
|
|
||||||
public class Subject implements Serializable {
|
|
||||||
private ControlledField subject;
|
|
||||||
private Provenance provenance;
|
|
||||||
|
|
||||||
public ControlledField getSubject() {
|
|
||||||
return subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubject(ControlledField subject) {
|
|
||||||
this.subject = subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provenance getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(Provenance provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.community;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Instance;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.KeyValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* It extends eu.dnetlib.dhp.dump.oaf.Instance with values related to the community dump. In the Result dump this
|
|
||||||
* information is not present because it is dumped as a set of relations between the result and the datasource. -
|
|
||||||
* hostedby of type eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the
|
|
||||||
* instance can be viewed or downloaded. It is mapped against the hostedby parameter of the instance to be dumped and -
|
|
||||||
* key corresponds to hostedby.key - value corresponds to hostedby.value - collectedfrom of type
|
|
||||||
* eu.dnetlib.dhp.schema.dump.oaf.KeyValue to store the information about the source from which the instance has been
|
|
||||||
* collected. It is mapped against the collectedfrom parameter of the instance to be dumped and - key corresponds to
|
|
||||||
* collectedfrom.key - value corresponds to collectedfrom.value
|
|
||||||
*/
|
|
||||||
public class CommunityInstance extends Instance {
|
|
||||||
private KeyValue hostedby;
|
|
||||||
private KeyValue collectedfrom;
|
|
||||||
|
|
||||||
public KeyValue getHostedby() {
|
|
||||||
return hostedby;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHostedby(KeyValue hostedby) {
|
|
||||||
this.hostedby = hostedby;
|
|
||||||
}
|
|
||||||
|
|
||||||
public KeyValue getCollectedfrom() {
|
|
||||||
return collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCollectedfrom(KeyValue collectedfrom) {
|
|
||||||
this.collectedfrom = collectedfrom;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.community;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.KeyValue;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Result;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* extends eu.dnetlib.dhp.schema.dump.oaf.Result with the following parameters: - projects of type
|
|
||||||
* List<eu.dnetlib.dhp.schema.dump.oaf.community.Project> to store the list of projects related to the result. The
|
|
||||||
* information is added after the result is mapped to the external model - context of type
|
|
||||||
* List<eu.dnetlib.dhp.schema.dump.oaf.community.Context> to store information about the RC RI related to the result.
|
|
||||||
* For each context in the result represented in the internal model one context in the external model is produced -
|
|
||||||
* collectedfrom of type List<eu.dnetliv.dhp.schema.dump.oaf.KeyValue> to store information about the sources from which
|
|
||||||
* the record has been collected. For each collectedfrom in the result represented in the internal model one
|
|
||||||
* collectedfrom in the external model is produced - instance of type
|
|
||||||
* List<eu.dnetlib.dhp.schema.dump.oaf.community.CommunityInstance> to store all the instances associated to the result.
|
|
||||||
* It corresponds to the same parameter in the result represented in the internal model
|
|
||||||
*/
|
|
||||||
public class CommunityResult extends Result {
|
|
||||||
|
|
||||||
private List<Project> projects;
|
|
||||||
|
|
||||||
private List<Context> context;
|
|
||||||
|
|
||||||
protected List<KeyValue> collectedfrom;
|
|
||||||
|
|
||||||
private List<CommunityInstance> instance;
|
|
||||||
|
|
||||||
public List<CommunityInstance> getInstance() {
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInstance(List<CommunityInstance> instance) {
|
|
||||||
this.instance = instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<KeyValue> getCollectedfrom() {
|
|
||||||
return collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCollectedfrom(List<KeyValue> collectedfrom) {
|
|
||||||
this.collectedfrom = collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Project> getProjects() {
|
|
||||||
return projects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProjects(List<Project> projects) {
|
|
||||||
this.projects = projects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Context> getContext() {
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContext(List<Context> context) {
|
|
||||||
this.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.community;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Provenance;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Qualifier;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a relevant research infrastructure, initiative or community (RI/RC) among those collaborating with
|
|
||||||
* OpenAIRE. It extend eu.dnetlib.dhp.shema.dump.oaf.Qualifier with a parameter provenance of type
|
|
||||||
* List<eu.dnetlib.dhp.schema.dump.oaf.Provenance> to store the provenances of the association between the result and
|
|
||||||
* the RC/RI. The values for this element correspond to: - code: it corresponds to the id of the context in the result
|
|
||||||
* to be mapped. If the context id refers to a RC/RI and contains '::' only the part of the id before the first "::"
|
|
||||||
* will be used as value for code - label it corresponds to the label associated to the id. The information id taken
|
|
||||||
* from the profile of the RC/RI - provenance it is set only if the dataInfo associated to the contenxt element of the
|
|
||||||
* result to be dumped is not null. For each dataInfo one instance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance is
|
|
||||||
* instantiated if the element datainfo.provenanceaction is not null. In this case - provenance corresponds to
|
|
||||||
* dataInfo.provenanceaction.classname - trust corresponds to dataInfo.trust
|
|
||||||
*/
|
|
||||||
public class Context extends Qualifier {
|
|
||||||
private List<Provenance> provenance;
|
|
||||||
|
|
||||||
public List<Provenance> getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(List<Provenance> provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
String provenance = new String();
|
|
||||||
this.provenance.forEach(p -> provenance.concat(p.toString()));
|
|
||||||
return Objects.hash(getCode(), getLabel(), provenance);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.community;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the funder funding the project related to the result. It has the following parameters: -
|
|
||||||
* shortName of type String to store the funder short name (e.c. AKA). - name of type String to store the funder name
|
|
||||||
* (e.c. Akademy of Finland) - fundingStream of type String to store the funding stream - jurisdiction of type String to
|
|
||||||
* store the jurisdiction of the funder
|
|
||||||
*/
|
|
||||||
public class Funder extends eu.dnetlib.dhp.schema.dump.oaf.Funder {
|
|
||||||
|
|
||||||
private String fundingStream;
|
|
||||||
|
|
||||||
public String getFundingStream() {
|
|
||||||
return fundingStream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFundingStream(String fundingStream) {
|
|
||||||
this.fundingStream = fundingStream;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.community;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Provenance;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To store information about the project related to the result. This information is not directly mapped from the result
|
|
||||||
* represented in the internal model because it is not there. The mapped result will be enriched with project
|
|
||||||
* information derived by relation between results and projects. Project extends eu.dnetlib.dhp.schema.dump.oaf.Project
|
|
||||||
* with the following parameters: - funder of type eu.dnetlib.dhp.schema.dump.oaf.community.Funder to store information
|
|
||||||
* about the funder funding the project - provenance of type eu.dnetlib.dhp.schema.dump.oaf.Provenance to store
|
|
||||||
* information about the. provenance of the association between the result and the project
|
|
||||||
*/
|
|
||||||
public class Project extends eu.dnetlib.dhp.schema.dump.oaf.Project {
|
|
||||||
|
|
||||||
private Funder funder;
|
|
||||||
|
|
||||||
private Provenance provenance;
|
|
||||||
|
|
||||||
public Provenance getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(Provenance provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Funder getFunder() {
|
|
||||||
return funder;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFunder(Funder funders) {
|
|
||||||
this.funder = funders;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Project newInstance(String id, String code, String acronym, String title, Funder funder) {
|
|
||||||
Project project = new Project();
|
|
||||||
project.setAcronym(acronym);
|
|
||||||
project.setCode(code);
|
|
||||||
project.setFunder(funder);
|
|
||||||
project.setId(id);
|
|
||||||
project.setTitle(title);
|
|
||||||
return project;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.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,316 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Container;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.ControlledField;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.KeyValue;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 {
|
|
||||||
|
|
||||||
private String id; // string
|
|
||||||
|
|
||||||
private List<String> originalId; // list string
|
|
||||||
|
|
||||||
private List<ControlledField> pid; // list<String>
|
|
||||||
|
|
||||||
private ControlledField datasourcetype; // value
|
|
||||||
|
|
||||||
private String openairecompatibility; // value
|
|
||||||
|
|
||||||
private String officialname; // string
|
|
||||||
|
|
||||||
private String englishname; // string
|
|
||||||
|
|
||||||
private String websiteurl; // string
|
|
||||||
|
|
||||||
private String logourl; // string
|
|
||||||
|
|
||||||
private String dateofvalidation; // string
|
|
||||||
|
|
||||||
private String description; // description
|
|
||||||
|
|
||||||
private List<String> subjects; // List<String>
|
|
||||||
|
|
||||||
// opendoar specific fields (od*)
|
|
||||||
|
|
||||||
private List<String> languages; // odlanguages List<String>
|
|
||||||
|
|
||||||
private List<String> contenttypes; // odcontent types List<String>
|
|
||||||
|
|
||||||
// re3data fields
|
|
||||||
private String releasestartdate; // string
|
|
||||||
|
|
||||||
private String releaseenddate; // string
|
|
||||||
|
|
||||||
private String missionstatementurl; // string
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
private String accessrights; // databaseaccesstype string
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
private String uploadrights; // datauploadtype string
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
private String databaseaccessrestriction; // string
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
private String datauploadrestriction; // string
|
|
||||||
|
|
||||||
private Boolean versioning; // boolean
|
|
||||||
|
|
||||||
private String citationguidelineurl; // string
|
|
||||||
|
|
||||||
// {yes, no, uknown}
|
|
||||||
|
|
||||||
private String pidsystems; // string
|
|
||||||
|
|
||||||
private String certificates; // string
|
|
||||||
|
|
||||||
private List<Object> policies; //
|
|
||||||
|
|
||||||
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<ControlledField> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<ControlledField> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlledField getDatasourcetype() {
|
|
||||||
return datasourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourcetype(ControlledField 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<Object> getPolicies() {
|
|
||||||
return policies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPolicies(List<Object> policiesr3) {
|
|
||||||
this.policies = policiesr3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Container getJournal() {
|
|
||||||
return journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJournal(Container journal) {
|
|
||||||
this.journal = journal;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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.schema.dump.oaf.Funder {
|
|
||||||
|
|
||||||
private Fundings funding_stream;
|
|
||||||
|
|
||||||
public Fundings getFunding_stream() {
|
|
||||||
return funding_stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFunding_stream(Fundings funding_stream) {
|
|
||||||
this.funding_stream = funding_stream;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 {
|
|
||||||
|
|
||||||
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,55 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 {
|
|
||||||
private String currency;
|
|
||||||
private float totalcost;
|
|
||||||
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,24 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Instance;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Result;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* It extends the eu.dnetlib.dhp.schema.dump.oaf.Result with - instance of type
|
|
||||||
* List<eu.dnetlib.dhp.schema.dump.oaf.Instance> to store all the instances associated to the result. It corresponds to
|
|
||||||
* the same parameter in the result represented in the internal model
|
|
||||||
*/
|
|
||||||
public class GraphResult extends Result {
|
|
||||||
private List<Instance> instance;
|
|
||||||
|
|
||||||
public List<Instance> getInstance() {
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInstance(List<Instance> instance) {
|
|
||||||
this.instance = instance;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.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.schema.dump.oaf.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,86 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.ControlledField;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Country;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.KeyValue;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Qualifier;
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.community.Project;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 Qualifier country to store the country of the organization - private
|
|
||||||
* String id to store the id of the organization - private List<ControlledField> pid to store the list of pids for the
|
|
||||||
* organization
|
|
||||||
*/
|
|
||||||
public class Organization implements Serializable {
|
|
||||||
private String legalshortname;
|
|
||||||
private String legalname;
|
|
||||||
private String websiteurl;
|
|
||||||
private List<String> alternativenames;
|
|
||||||
private Qualifier country;
|
|
||||||
private String id;
|
|
||||||
private List<ControlledField> 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 Qualifier getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(Qualifier country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ControlledField> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<ControlledField> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 {
|
|
||||||
private String code;
|
|
||||||
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,192 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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;
|
|
||||||
|
|
||||||
private List<Funder> funding;
|
|
||||||
|
|
||||||
private String summary;
|
|
||||||
|
|
||||||
private Granted granted;
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the semantics of the generic relation between two entities. It has the following parameters: - private
|
|
||||||
* String name to store the semantics of the relation (i.e. isAuthorInstitutionOf). It corresponds to the relclass
|
|
||||||
* parameter in the relation represented in the internal model represented in the internal model - private String type
|
|
||||||
* to store the type of the relation (i.e. affiliation). It corresponds to the subreltype parameter of the relation
|
|
||||||
* represented in theinternal model
|
|
||||||
*/
|
|
||||||
public class RelType implements Serializable {
|
|
||||||
private String name; // relclass
|
|
||||||
private String type; // subreltype
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static RelType newInstance(String name, String type) {
|
|
||||||
RelType rel = new RelType();
|
|
||||||
rel.name = name;
|
|
||||||
rel.type = type;
|
|
||||||
return rel;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,67 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.dump.oaf.Provenance;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent the gereric relation between two entities. It has the following parameters: - private Node source to
|
|
||||||
* represent the entity source of the relation - private Node target to represent the entity target of the relation -
|
|
||||||
* private RelType reltype to represent the semantics of the relation - private Provenance provenance to represent the
|
|
||||||
* provenance of the relation
|
|
||||||
*/
|
|
||||||
public class Relation implements Serializable {
|
|
||||||
private Node source;
|
|
||||||
private Node target;
|
|
||||||
private RelType reltype;
|
|
||||||
private Provenance provenance;
|
|
||||||
|
|
||||||
public Node getSource() {
|
|
||||||
return source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSource(Node source) {
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Node getTarget() {
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTarget(Node target) {
|
|
||||||
this.target = target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelType getReltype() {
|
|
||||||
return reltype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReltype(RelType reltype) {
|
|
||||||
this.reltype = reltype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provenance getProvenance() {
|
|
||||||
return provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenance(Provenance provenance) {
|
|
||||||
this.provenance = provenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
|
|
||||||
return Objects.hash(source.getId(), target.getId(), reltype.getType() + ":" + reltype.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Relation newInstance(Node source, Node target, RelType reltype, Provenance provenance) {
|
|
||||||
Relation relation = new Relation();
|
|
||||||
relation.source = source;
|
|
||||||
relation.target = target;
|
|
||||||
relation.reltype = reltype;
|
|
||||||
relation.provenance = provenance;
|
|
||||||
return relation;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent RC entities. It extends eu.dnetlib.dhp.dump.oaf.grap.ResearchInitiative by adding the parameter subject
|
|
||||||
* to store the list of subjects related to the community
|
|
||||||
*/
|
|
||||||
public class ResearchCommunity extends ResearchInitiative {
|
|
||||||
private List<String> subject;
|
|
||||||
|
|
||||||
public List<String> getSubject() {
|
|
||||||
return subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubject(List<String> subject) {
|
|
||||||
this.subject = subject;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,75 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.dump.oaf.graph;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* To represent entity of type RC/RI. It has the following parameters, which are mostly derived by the profile
|
|
||||||
* - private
|
|
||||||
* String id to store the openaire id for the entity. Is has as code 00 and will be created as
|
|
||||||
* 00|context_____::md5(originalId) private
|
|
||||||
* String originalId to store the id of the context as provided in the profile
|
|
||||||
* (i.e. mes)
|
|
||||||
* - private String name to store the name of the context (got from the label attribute in the context
|
|
||||||
* definition)
|
|
||||||
* - private String type to store the type of the context (i.e.: research initiative or research community)
|
|
||||||
* - private String description to store the description of the context as given in the profile
|
|
||||||
* -private String
|
|
||||||
* zenodo_community to store the zenodo community associated to the context (main zenodo community)
|
|
||||||
*/
|
|
||||||
public class ResearchInitiative implements Serializable {
|
|
||||||
private String id; // openaireId
|
|
||||||
private String originalId; // context id
|
|
||||||
private String name; // context name
|
|
||||||
private String type; // context type: research initiative or research community
|
|
||||||
private String description;
|
|
||||||
private String zenodo_community;
|
|
||||||
|
|
||||||
public String getZenodo_community() {
|
|
||||||
return zenodo_community;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setZenodo_community(String zenodo_community) {
|
|
||||||
this.zenodo_community = zenodo_community;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String label) {
|
|
||||||
this.name = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOriginalId() {
|
|
||||||
return originalId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalId(String originalId) {
|
|
||||||
this.originalId = originalId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class Author implements Serializable {
|
|
||||||
|
|
||||||
private String fullname;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String surname;
|
|
||||||
|
|
||||||
private Integer rank;
|
|
||||||
|
|
||||||
private List<StructuredProperty> pid;
|
|
||||||
|
|
||||||
private List<Field<String>> affiliation;
|
|
||||||
|
|
||||||
public String getFullname() {
|
|
||||||
return fullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFullname(String fullname) {
|
|
||||||
this.fullname = fullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSurname() {
|
|
||||||
return surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSurname(String surname) {
|
|
||||||
this.surname = surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRank() {
|
|
||||||
return rank;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRank(Integer rank) {
|
|
||||||
this.rank = rank;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<StructuredProperty> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getAffiliation() {
|
|
||||||
return affiliation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAffiliation(List<Field<String>> affiliation) {
|
|
||||||
this.affiliation = affiliation;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
Author author = (Author) o;
|
|
||||||
return Objects.equals(fullname, author.fullname)
|
|
||||||
&& Objects.equals(name, author.name)
|
|
||||||
&& Objects.equals(surname, author.surname)
|
|
||||||
&& Objects.equals(rank, author.rank)
|
|
||||||
&& Objects.equals(pid, author.pid)
|
|
||||||
&& Objects.equals(affiliation, author.affiliation);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(fullname, name, surname, rank, pid, affiliation);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Context implements Serializable {
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private List<DataInfo> dataInfo;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DataInfo> getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(List<DataInfo> dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return id == null ? 0 : id.hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Context other = (Context) obj;
|
|
||||||
|
|
||||||
return id.equals(other.getId());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Country extends Qualifier {
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
if (!super.equals(o))
|
|
||||||
return false;
|
|
||||||
Country country = (Country) o;
|
|
||||||
return Objects.equals(dataInfo, country.dataInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(super.hashCode(), dataInfo);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,85 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class DataInfo implements Serializable {
|
|
||||||
|
|
||||||
private Boolean invisible = false;
|
|
||||||
private Boolean inferred;
|
|
||||||
private Boolean deletedbyinference = false;
|
|
||||||
private String trust;
|
|
||||||
private String inferenceprovenance;
|
|
||||||
private Qualifier provenanceaction;
|
|
||||||
|
|
||||||
public Boolean getInvisible() {
|
|
||||||
return invisible;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInvisible(Boolean invisible) {
|
|
||||||
this.invisible = invisible;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getInferred() {
|
|
||||||
return inferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInferred(Boolean inferred) {
|
|
||||||
this.inferred = inferred;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getDeletedbyinference() {
|
|
||||||
return deletedbyinference;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDeletedbyinference(Boolean deletedbyinference) {
|
|
||||||
this.deletedbyinference = deletedbyinference;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTrust() {
|
|
||||||
return trust;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTrust(String trust) {
|
|
||||||
this.trust = trust;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInferenceprovenance() {
|
|
||||||
return inferenceprovenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInferenceprovenance(String inferenceprovenance) {
|
|
||||||
this.inferenceprovenance = inferenceprovenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getProvenanceaction() {
|
|
||||||
return provenanceaction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProvenanceaction(Qualifier provenanceaction) {
|
|
||||||
this.provenanceaction = provenanceaction;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
DataInfo dataInfo = (DataInfo) o;
|
|
||||||
return Objects.equals(invisible, dataInfo.invisible)
|
|
||||||
&& Objects.equals(inferred, dataInfo.inferred)
|
|
||||||
&& Objects.equals(deletedbyinference, dataInfo.deletedbyinference)
|
|
||||||
&& Objects.equals(trust, dataInfo.trust)
|
|
||||||
&& Objects.equals(inferenceprovenance, dataInfo.inferenceprovenance)
|
|
||||||
&& Objects.equals(provenanceaction, dataInfo.provenanceaction);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects
|
|
||||||
.hash(
|
|
||||||
invisible, inferred, deletedbyinference, trust, inferenceprovenance, provenanceaction);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,116 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
|
||||||
|
|
||||||
public class Dataset extends Result implements Serializable {
|
|
||||||
|
|
||||||
private Field<String> storagedate;
|
|
||||||
|
|
||||||
// candidate for removal
|
|
||||||
private Field<String> device;
|
|
||||||
|
|
||||||
private Field<String> size;
|
|
||||||
|
|
||||||
private Field<String> version;
|
|
||||||
|
|
||||||
private Field<String> lastmetadataupdate;
|
|
||||||
|
|
||||||
private Field<String> metadataversionnumber;
|
|
||||||
|
|
||||||
private List<GeoLocation> geolocation;
|
|
||||||
|
|
||||||
public Dataset() {
|
|
||||||
setResulttype(ModelConstants.DATASET_DEFAULT_RESULTTYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getStoragedate() {
|
|
||||||
return storagedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStoragedate(Field<String> storagedate) {
|
|
||||||
this.storagedate = storagedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDevice() {
|
|
||||||
return device;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDevice(Field<String> device) {
|
|
||||||
this.device = device;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getSize() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSize(Field<String> size) {
|
|
||||||
this.size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Field<String> version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLastmetadataupdate() {
|
|
||||||
return lastmetadataupdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastmetadataupdate(Field<String> lastmetadataupdate) {
|
|
||||||
this.lastmetadataupdate = lastmetadataupdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getMetadataversionnumber() {
|
|
||||||
return metadataversionnumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMetadataversionnumber(Field<String> metadataversionnumber) {
|
|
||||||
this.metadataversionnumber = metadataversionnumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<GeoLocation> getGeolocation() {
|
|
||||||
return geolocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGeolocation(List<GeoLocation> geolocation) {
|
|
||||||
this.geolocation = geolocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Dataset.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final Dataset d = (Dataset) e;
|
|
||||||
|
|
||||||
storagedate = d.getStoragedate() != null && compareTrust(this, e) < 0 ? d.getStoragedate() : storagedate;
|
|
||||||
|
|
||||||
device = d.getDevice() != null && compareTrust(this, e) < 0 ? d.getDevice() : device;
|
|
||||||
|
|
||||||
size = d.getSize() != null && compareTrust(this, e) < 0 ? d.getSize() : size;
|
|
||||||
|
|
||||||
version = d.getVersion() != null && compareTrust(this, e) < 0 ? d.getVersion() : version;
|
|
||||||
|
|
||||||
lastmetadataupdate = d.getLastmetadataupdate() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getLastmetadataupdate()
|
|
||||||
: lastmetadataupdate;
|
|
||||||
|
|
||||||
metadataversionnumber = d.getMetadataversionnumber() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getMetadataversionnumber()
|
|
||||||
: metadataversionnumber;
|
|
||||||
|
|
||||||
geolocation = mergeLists(geolocation, d.getGeolocation());
|
|
||||||
|
|
||||||
mergeOAFDataInfo(d);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,472 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Datasource extends OafEntity implements Serializable {
|
|
||||||
|
|
||||||
private Qualifier datasourcetype;
|
|
||||||
|
|
||||||
private Qualifier openairecompatibility;
|
|
||||||
|
|
||||||
private Field<String> officialname;
|
|
||||||
|
|
||||||
private Field<String> englishname;
|
|
||||||
|
|
||||||
private Field<String> websiteurl;
|
|
||||||
|
|
||||||
private Field<String> logourl;
|
|
||||||
|
|
||||||
private Field<String> contactemail;
|
|
||||||
|
|
||||||
private Field<String> namespaceprefix;
|
|
||||||
|
|
||||||
private Field<String> latitude;
|
|
||||||
|
|
||||||
private Field<String> longitude;
|
|
||||||
|
|
||||||
private Field<String> dateofvalidation;
|
|
||||||
|
|
||||||
private Field<String> description;
|
|
||||||
|
|
||||||
private List<StructuredProperty> subjects;
|
|
||||||
|
|
||||||
// opendoar specific fields (od*)
|
|
||||||
private Field<String> odnumberofitems;
|
|
||||||
|
|
||||||
private Field<String> odnumberofitemsdate;
|
|
||||||
|
|
||||||
private Field<String> odpolicies;
|
|
||||||
|
|
||||||
private List<Field<String>> odlanguages;
|
|
||||||
|
|
||||||
private List<Field<String>> odcontenttypes;
|
|
||||||
|
|
||||||
private List<Field<String>> accessinfopackage;
|
|
||||||
|
|
||||||
// re3data fields
|
|
||||||
private Field<String> releasestartdate;
|
|
||||||
|
|
||||||
private Field<String> releaseenddate;
|
|
||||||
|
|
||||||
private Field<String> missionstatementurl;
|
|
||||||
|
|
||||||
private Field<Boolean> dataprovider;
|
|
||||||
|
|
||||||
private Field<Boolean> serviceprovider;
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
private Field<String> databaseaccesstype;
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
private Field<String> datauploadtype;
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
private Field<String> databaseaccessrestriction;
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
private Field<String> datauploadrestriction;
|
|
||||||
|
|
||||||
private Field<Boolean> versioning;
|
|
||||||
|
|
||||||
private Field<String> citationguidelineurl;
|
|
||||||
|
|
||||||
// {yes, no, uknown}
|
|
||||||
private Field<String> qualitymanagementkind;
|
|
||||||
|
|
||||||
private Field<String> pidsystems;
|
|
||||||
|
|
||||||
private Field<String> certificates;
|
|
||||||
|
|
||||||
private List<KeyValue> policies;
|
|
||||||
|
|
||||||
private Journal journal;
|
|
||||||
|
|
||||||
public Qualifier getDatasourcetype() {
|
|
||||||
return datasourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasourcetype(Qualifier datasourcetype) {
|
|
||||||
this.datasourcetype = datasourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getOpenairecompatibility() {
|
|
||||||
return openairecompatibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOpenairecompatibility(Qualifier openairecompatibility) {
|
|
||||||
this.openairecompatibility = openairecompatibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOfficialname() {
|
|
||||||
return officialname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOfficialname(Field<String> officialname) {
|
|
||||||
this.officialname = officialname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEnglishname() {
|
|
||||||
return englishname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnglishname(Field<String> englishname) {
|
|
||||||
this.englishname = englishname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(Field<String> websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLogourl() {
|
|
||||||
return logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLogourl(Field<String> logourl) {
|
|
||||||
this.logourl = logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getContactemail() {
|
|
||||||
return contactemail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactemail(Field<String> contactemail) {
|
|
||||||
this.contactemail = contactemail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getNamespaceprefix() {
|
|
||||||
return namespaceprefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNamespaceprefix(Field<String> namespaceprefix) {
|
|
||||||
this.namespaceprefix = namespaceprefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLatitude() {
|
|
||||||
return latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLatitude(Field<String> latitude) {
|
|
||||||
this.latitude = latitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLongitude() {
|
|
||||||
return longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLongitude(Field<String> longitude) {
|
|
||||||
this.longitude = longitude;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDateofvalidation() {
|
|
||||||
return dateofvalidation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofvalidation(Field<String> dateofvalidation) {
|
|
||||||
this.dateofvalidation = dateofvalidation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(Field<String> description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getSubjects() {
|
|
||||||
return subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubjects(List<StructuredProperty> subjects) {
|
|
||||||
this.subjects = subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOdnumberofitems() {
|
|
||||||
return odnumberofitems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOdnumberofitems(Field<String> odnumberofitems) {
|
|
||||||
this.odnumberofitems = odnumberofitems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOdnumberofitemsdate() {
|
|
||||||
return odnumberofitemsdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOdnumberofitemsdate(Field<String> odnumberofitemsdate) {
|
|
||||||
this.odnumberofitemsdate = odnumberofitemsdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOdpolicies() {
|
|
||||||
return odpolicies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOdpolicies(Field<String> odpolicies) {
|
|
||||||
this.odpolicies = odpolicies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getOdlanguages() {
|
|
||||||
return odlanguages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOdlanguages(List<Field<String>> odlanguages) {
|
|
||||||
this.odlanguages = odlanguages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getOdcontenttypes() {
|
|
||||||
return odcontenttypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOdcontenttypes(List<Field<String>> odcontenttypes) {
|
|
||||||
this.odcontenttypes = odcontenttypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getAccessinfopackage() {
|
|
||||||
return accessinfopackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccessinfopackage(List<Field<String>> accessinfopackage) {
|
|
||||||
this.accessinfopackage = accessinfopackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getReleasestartdate() {
|
|
||||||
return releasestartdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReleasestartdate(Field<String> releasestartdate) {
|
|
||||||
this.releasestartdate = releasestartdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getReleaseenddate() {
|
|
||||||
return releaseenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setReleaseenddate(Field<String> releaseenddate) {
|
|
||||||
this.releaseenddate = releaseenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getMissionstatementurl() {
|
|
||||||
return missionstatementurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMissionstatementurl(Field<String> missionstatementurl) {
|
|
||||||
this.missionstatementurl = missionstatementurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<Boolean> getDataprovider() {
|
|
||||||
return dataprovider;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataprovider(Field<Boolean> dataprovider) {
|
|
||||||
this.dataprovider = dataprovider;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<Boolean> getServiceprovider() {
|
|
||||||
return serviceprovider;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setServiceprovider(Field<Boolean> serviceprovider) {
|
|
||||||
this.serviceprovider = serviceprovider;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDatabaseaccesstype() {
|
|
||||||
return databaseaccesstype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatabaseaccesstype(Field<String> databaseaccesstype) {
|
|
||||||
this.databaseaccesstype = databaseaccesstype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDatauploadtype() {
|
|
||||||
return datauploadtype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatauploadtype(Field<String> datauploadtype) {
|
|
||||||
this.datauploadtype = datauploadtype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDatabaseaccessrestriction() {
|
|
||||||
return databaseaccessrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatabaseaccessrestriction(Field<String> databaseaccessrestriction) {
|
|
||||||
this.databaseaccessrestriction = databaseaccessrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDatauploadrestriction() {
|
|
||||||
return datauploadrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatauploadrestriction(Field<String> datauploadrestriction) {
|
|
||||||
this.datauploadrestriction = datauploadrestriction;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<Boolean> getVersioning() {
|
|
||||||
return versioning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersioning(Field<Boolean> versioning) {
|
|
||||||
this.versioning = versioning;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCitationguidelineurl() {
|
|
||||||
return citationguidelineurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCitationguidelineurl(Field<String> citationguidelineurl) {
|
|
||||||
this.citationguidelineurl = citationguidelineurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getQualitymanagementkind() {
|
|
||||||
return qualitymanagementkind;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQualitymanagementkind(Field<String> qualitymanagementkind) {
|
|
||||||
this.qualitymanagementkind = qualitymanagementkind;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getPidsystems() {
|
|
||||||
return pidsystems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPidsystems(Field<String> pidsystems) {
|
|
||||||
this.pidsystems = pidsystems;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCertificates() {
|
|
||||||
return certificates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCertificates(Field<String> certificates) {
|
|
||||||
this.certificates = certificates;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<KeyValue> getPolicies() {
|
|
||||||
return policies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPolicies(List<KeyValue> policies) {
|
|
||||||
this.policies = policies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Journal getJournal() {
|
|
||||||
return journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJournal(Journal journal) {
|
|
||||||
this.journal = journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Datasource.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Datasource d = (Datasource) e;
|
|
||||||
|
|
||||||
datasourcetype = d.getDatasourcetype() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDatasourcetype()
|
|
||||||
: datasourcetype;
|
|
||||||
openairecompatibility = d.getOpenairecompatibility() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getOpenairecompatibility()
|
|
||||||
: openairecompatibility;
|
|
||||||
officialname = d.getOfficialname() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getOfficialname()
|
|
||||||
: officialname;
|
|
||||||
englishname = d.getEnglishname() != null && compareTrust(this, e) < 0 ? d.getEnglishname() : officialname;
|
|
||||||
websiteurl = d.getWebsiteurl() != null && compareTrust(this, e) < 0 ? d.getWebsiteurl() : websiteurl;
|
|
||||||
logourl = d.getLogourl() != null && compareTrust(this, e) < 0 ? d.getLogourl() : getLogourl();
|
|
||||||
contactemail = d.getContactemail() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getContactemail()
|
|
||||||
: contactemail;
|
|
||||||
namespaceprefix = d.getNamespaceprefix() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getNamespaceprefix()
|
|
||||||
: namespaceprefix;
|
|
||||||
latitude = d.getLatitude() != null && compareTrust(this, e) < 0 ? d.getLatitude() : latitude;
|
|
||||||
longitude = d.getLongitude() != null && compareTrust(this, e) < 0 ? d.getLongitude() : longitude;
|
|
||||||
dateofvalidation = d.getDateofvalidation() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDateofvalidation()
|
|
||||||
: dateofvalidation;
|
|
||||||
description = d.getDescription() != null && compareTrust(this, e) < 0 ? d.getDescription() : description;
|
|
||||||
subjects = mergeLists(subjects, d.getSubjects());
|
|
||||||
|
|
||||||
// opendoar specific fields (od*)
|
|
||||||
odnumberofitems = d.getOdnumberofitems() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getOdnumberofitems()
|
|
||||||
: odnumberofitems;
|
|
||||||
odnumberofitemsdate = d.getOdnumberofitemsdate() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getOdnumberofitemsdate()
|
|
||||||
: odnumberofitemsdate;
|
|
||||||
odpolicies = d.getOdpolicies() != null && compareTrust(this, e) < 0 ? d.getOdpolicies() : odpolicies;
|
|
||||||
odlanguages = mergeLists(odlanguages, d.getOdlanguages());
|
|
||||||
odcontenttypes = mergeLists(odcontenttypes, d.getOdcontenttypes());
|
|
||||||
accessinfopackage = mergeLists(accessinfopackage, d.getAccessinfopackage());
|
|
||||||
|
|
||||||
// re3data fields
|
|
||||||
releasestartdate = d.getReleasestartdate() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getReleasestartdate()
|
|
||||||
: releasestartdate;
|
|
||||||
releaseenddate = d.getReleaseenddate() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getReleaseenddate()
|
|
||||||
: releaseenddate;
|
|
||||||
missionstatementurl = d.getMissionstatementurl() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getMissionstatementurl()
|
|
||||||
: missionstatementurl;
|
|
||||||
dataprovider = d.getDataprovider() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDataprovider()
|
|
||||||
: dataprovider;
|
|
||||||
serviceprovider = d.getServiceprovider() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getServiceprovider()
|
|
||||||
: serviceprovider;
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
databaseaccesstype = d.getDatabaseaccesstype() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDatabaseaccesstype()
|
|
||||||
: databaseaccesstype;
|
|
||||||
|
|
||||||
// {open, restricted or closed}
|
|
||||||
datauploadtype = d.getDatauploadtype() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDatauploadtype()
|
|
||||||
: datauploadtype;
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
databaseaccessrestriction = d.getDatabaseaccessrestriction() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDatabaseaccessrestriction()
|
|
||||||
: databaseaccessrestriction;
|
|
||||||
|
|
||||||
// {feeRequired, registration, other}
|
|
||||||
datauploadrestriction = d.getDatauploadrestriction() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getDatauploadrestriction()
|
|
||||||
: datauploadrestriction;
|
|
||||||
|
|
||||||
versioning = d.getVersioning() != null && compareTrust(this, e) < 0 ? d.getVersioning() : versioning;
|
|
||||||
citationguidelineurl = d.getCitationguidelineurl() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getCitationguidelineurl()
|
|
||||||
: citationguidelineurl;
|
|
||||||
|
|
||||||
// {yes, no, unknown}
|
|
||||||
qualitymanagementkind = d.getQualitymanagementkind() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getQualitymanagementkind()
|
|
||||||
: qualitymanagementkind;
|
|
||||||
pidsystems = d.getPidsystems() != null && compareTrust(this, e) < 0 ? d.getPidsystems() : pidsystems;
|
|
||||||
|
|
||||||
certificates = d.getCertificates() != null && compareTrust(this, e) < 0
|
|
||||||
? d.getCertificates()
|
|
||||||
: certificates;
|
|
||||||
|
|
||||||
policies = mergeLists(policies, d.getPolicies());
|
|
||||||
|
|
||||||
journal = d.getJournal() != null && compareTrust(this, e) < 0 ? d.getJournal() : journal;
|
|
||||||
|
|
||||||
mergeOAFDataInfo(e);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,119 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class ExternalReference implements Serializable {
|
|
||||||
// source
|
|
||||||
private String sitename;
|
|
||||||
|
|
||||||
// title
|
|
||||||
private String label;
|
|
||||||
|
|
||||||
// text()
|
|
||||||
private String url;
|
|
||||||
|
|
||||||
// ?? not mapped yet ??
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
// type
|
|
||||||
private Qualifier qualifier;
|
|
||||||
|
|
||||||
// site internal identifier
|
|
||||||
private String refidentifier;
|
|
||||||
|
|
||||||
// maps the oaf:reference/@query attribute
|
|
||||||
private String query;
|
|
||||||
|
|
||||||
// ExternalReferences might be also inferred
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public String getSitename() {
|
|
||||||
return sitename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSitename(String sitename) {
|
|
||||||
this.sitename = sitename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getQualifier() {
|
|
||||||
return qualifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQualifier(Qualifier qualifier) {
|
|
||||||
this.qualifier = qualifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRefidentifier() {
|
|
||||||
return refidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRefidentifier(String refidentifier) {
|
|
||||||
this.refidentifier = refidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getQuery() {
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQuery(String query) {
|
|
||||||
this.query = query;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
ExternalReference that = (ExternalReference) o;
|
|
||||||
return Objects.equals(sitename, that.sitename)
|
|
||||||
&& Objects.equals(label, that.label)
|
|
||||||
&& Objects.equals(url, that.url)
|
|
||||||
&& Objects.equals(description, that.description)
|
|
||||||
&& Objects.equals(qualifier, that.qualifier)
|
|
||||||
&& Objects.equals(refidentifier, that.refidentifier)
|
|
||||||
&& Objects.equals(query, that.query)
|
|
||||||
&& Objects.equals(dataInfo, that.dataInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects
|
|
||||||
.hash(
|
|
||||||
sitename, label, url, description, qualifier, refidentifier, query, dataInfo);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class ExtraInfo implements Serializable {
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String typology;
|
|
||||||
|
|
||||||
private String provenance;
|
|
||||||
|
|
||||||
private String trust;
|
|
||||||
|
|
||||||
// json containing a Citation or Statistics
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTypology() {
|
|
||||||
return typology;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTypology(String typology) {
|
|
||||||
this.typology = typology;
|
|
||||||
}
|
|
||||||
|
|
||||||
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 String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
ExtraInfo extraInfo = (ExtraInfo) o;
|
|
||||||
return Objects.equals(name, extraInfo.name)
|
|
||||||
&& Objects.equals(typology, extraInfo.typology)
|
|
||||||
&& Objects.equals(provenance, extraInfo.provenance)
|
|
||||||
&& Objects.equals(trust, extraInfo.trust)
|
|
||||||
&& Objects.equals(value, extraInfo.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(name, typology, provenance, trust, value);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Field<T> implements Serializable {
|
|
||||||
|
|
||||||
private T value;
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public T getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(T value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return getValue() == null ? 0 : getValue().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
Field<T> other = (Field<T>) obj;
|
|
||||||
return Objects.equals(getValue(), other.getValue());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,76 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
public class GeoLocation implements Serializable {
|
|
||||||
|
|
||||||
private String point;
|
|
||||||
|
|
||||||
private String box;
|
|
||||||
|
|
||||||
private String place;
|
|
||||||
|
|
||||||
public String getPoint() {
|
|
||||||
return point;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPoint(String point) {
|
|
||||||
this.point = point;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBox() {
|
|
||||||
return box;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBox(String box) {
|
|
||||||
this.box = box;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPlace() {
|
|
||||||
return place;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPlace(String place) {
|
|
||||||
this.place = place;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public boolean isBlank() {
|
|
||||||
return StringUtils.isBlank(point) && StringUtils.isBlank(box) && StringUtils.isBlank(place);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toComparableString() {
|
|
||||||
return isBlank()
|
|
||||||
? ""
|
|
||||||
: String
|
|
||||||
.format(
|
|
||||||
"%s::%s%s",
|
|
||||||
point != null ? point.toLowerCase() : "",
|
|
||||||
box != null ? box.toLowerCase() : "",
|
|
||||||
place != null ? place.toLowerCase() : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return toComparableString().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
GeoLocation other = (GeoLocation) obj;
|
|
||||||
|
|
||||||
return toComparableString().equals(other.toComparableString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 H2020Programme h2020Programme;
|
|
||||||
private String level1;
|
|
||||||
private String level2;
|
|
||||||
private String level3;
|
|
||||||
|
|
||||||
private String classification;
|
|
||||||
|
|
||||||
public H2020Programme getH2020Programme() {
|
|
||||||
return h2020Programme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setH2020Programme(H2020Programme h2020Programme) {
|
|
||||||
this.h2020Programme = h2020Programme;
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
H2020Classification h2020classification = (H2020Classification) o;
|
|
||||||
|
|
||||||
return Objects.equals(level1, h2020classification.level1) &&
|
|
||||||
Objects.equals(level2, h2020classification.level2) &&
|
|
||||||
Objects.equals(level3, h2020classification.level3) &&
|
|
||||||
Objects.equals(classification, h2020classification.classification) &&
|
|
||||||
h2020Programme.equals(h2020classification.h2020Programme);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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 H2020Programme implements Serializable {
|
|
||||||
private String code;
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
H2020Programme h2020Programme = (H2020Programme) o;
|
|
||||||
return Objects.equals(code, h2020Programme.code);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,152 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Instance implements Serializable {
|
|
||||||
|
|
||||||
private Field<String> license;
|
|
||||||
|
|
||||||
private Qualifier accessright;
|
|
||||||
|
|
||||||
private Qualifier instancetype;
|
|
||||||
|
|
||||||
private KeyValue hostedby;
|
|
||||||
|
|
||||||
private List<String> url;
|
|
||||||
|
|
||||||
// other research products specifc
|
|
||||||
private String distributionlocation;
|
|
||||||
|
|
||||||
private KeyValue collectedfrom;
|
|
||||||
|
|
||||||
private Field<String> dateofacceptance;
|
|
||||||
|
|
||||||
// ( article | book ) processing charges. Defined here to cope with possible wrongly typed
|
|
||||||
// results
|
|
||||||
private Field<String> processingchargeamount;
|
|
||||||
|
|
||||||
// currency - alphabetic code describe in ISO-4217. Defined here to cope with possible wrongly
|
|
||||||
// typed results
|
|
||||||
private Field<String> processingchargecurrency;
|
|
||||||
|
|
||||||
private Qualifier refereed; // peer-review status
|
|
||||||
|
|
||||||
public Field<String> getLicense() {
|
|
||||||
return license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLicense(Field<String> license) {
|
|
||||||
this.license = license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getAccessright() {
|
|
||||||
return accessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAccessright(Qualifier accessright) {
|
|
||||||
this.accessright = accessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getInstancetype() {
|
|
||||||
return instancetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInstancetype(Qualifier instancetype) {
|
|
||||||
this.instancetype = instancetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public KeyValue getHostedby() {
|
|
||||||
return hostedby;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHostedby(KeyValue hostedby) {
|
|
||||||
this.hostedby = hostedby;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(List<String> url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDistributionlocation() {
|
|
||||||
return distributionlocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDistributionlocation(String distributionlocation) {
|
|
||||||
this.distributionlocation = distributionlocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public KeyValue getCollectedfrom() {
|
|
||||||
return collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCollectedfrom(KeyValue collectedfrom) {
|
|
||||||
this.collectedfrom = collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDateofacceptance() {
|
|
||||||
return dateofacceptance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofacceptance(Field<String> dateofacceptance) {
|
|
||||||
this.dateofacceptance = dateofacceptance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getProcessingchargeamount() {
|
|
||||||
return processingchargeamount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProcessingchargeamount(Field<String> processingchargeamount) {
|
|
||||||
this.processingchargeamount = processingchargeamount;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getProcessingchargecurrency() {
|
|
||||||
return processingchargecurrency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProcessingchargecurrency(Field<String> processingchargecurrency) {
|
|
||||||
this.processingchargecurrency = processingchargecurrency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getRefereed() {
|
|
||||||
return refereed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRefereed(Qualifier refereed) {
|
|
||||||
this.refereed = refereed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toComparableString() {
|
|
||||||
return String
|
|
||||||
.format(
|
|
||||||
"%s::%s::%s::%s",
|
|
||||||
hostedby != null && hostedby.getKey() != null ? hostedby.getKey().toLowerCase() : "",
|
|
||||||
accessright != null && accessright.getClassid() != null ? accessright.getClassid() : "",
|
|
||||||
instancetype != null && instancetype.getClassid() != null ? instancetype.getClassid() : "",
|
|
||||||
url != null ? url : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return toComparableString().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Instance other = (Instance) obj;
|
|
||||||
|
|
||||||
return toComparableString().equals(other.toComparableString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,167 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class Journal implements Serializable {
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String issnPrinted;
|
|
||||||
|
|
||||||
private String issnOnline;
|
|
||||||
|
|
||||||
private String issnLinking;
|
|
||||||
|
|
||||||
private String ep;
|
|
||||||
|
|
||||||
private String iss;
|
|
||||||
|
|
||||||
private String sp;
|
|
||||||
|
|
||||||
private String vol;
|
|
||||||
|
|
||||||
private String edition;
|
|
||||||
|
|
||||||
private String conferenceplace;
|
|
||||||
|
|
||||||
private String conferencedate;
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnPrinted() {
|
|
||||||
return issnPrinted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnPrinted(String issnPrinted) {
|
|
||||||
this.issnPrinted = issnPrinted;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnOnline() {
|
|
||||||
return issnOnline;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnOnline(String issnOnline) {
|
|
||||||
this.issnOnline = issnOnline;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIssnLinking() {
|
|
||||||
return issnLinking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIssnLinking(String issnLinking) {
|
|
||||||
this.issnLinking = issnLinking;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEp() {
|
|
||||||
return ep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEp(String ep) {
|
|
||||||
this.ep = ep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIss() {
|
|
||||||
return iss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIss(String iss) {
|
|
||||||
this.iss = iss;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSp() {
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSp(String sp) {
|
|
||||||
this.sp = sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVol() {
|
|
||||||
return vol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVol(String vol) {
|
|
||||||
this.vol = vol;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEdition() {
|
|
||||||
return edition;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEdition(String edition) {
|
|
||||||
this.edition = edition;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getConferenceplace() {
|
|
||||||
return conferenceplace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConferenceplace(String conferenceplace) {
|
|
||||||
this.conferenceplace = conferenceplace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getConferencedate() {
|
|
||||||
return conferencedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConferencedate(String conferencedate) {
|
|
||||||
this.conferencedate = conferencedate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
Journal journal = (Journal) o;
|
|
||||||
return Objects.equals(name, journal.name)
|
|
||||||
&& Objects.equals(issnPrinted, journal.issnPrinted)
|
|
||||||
&& Objects.equals(issnOnline, journal.issnOnline)
|
|
||||||
&& Objects.equals(issnLinking, journal.issnLinking)
|
|
||||||
&& Objects.equals(ep, journal.ep)
|
|
||||||
&& Objects.equals(iss, journal.iss)
|
|
||||||
&& Objects.equals(sp, journal.sp)
|
|
||||||
&& Objects.equals(vol, journal.vol)
|
|
||||||
&& Objects.equals(edition, journal.edition)
|
|
||||||
&& Objects.equals(conferenceplace, journal.conferenceplace)
|
|
||||||
&& Objects.equals(conferencedate, journal.conferencedate)
|
|
||||||
&& Objects.equals(dataInfo, journal.dataInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects
|
|
||||||
.hash(
|
|
||||||
name,
|
|
||||||
issnPrinted,
|
|
||||||
issnOnline,
|
|
||||||
issnLinking,
|
|
||||||
ep,
|
|
||||||
iss,
|
|
||||||
sp,
|
|
||||||
vol,
|
|
||||||
edition,
|
|
||||||
conferenceplace,
|
|
||||||
conferencedate,
|
|
||||||
dataInfo);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,74 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
public class KeyValue implements Serializable {
|
|
||||||
|
|
||||||
private String key;
|
|
||||||
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public String getKey() {
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKey(String key) {
|
|
||||||
this.key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toComparableString() {
|
|
||||||
return isBlank()
|
|
||||||
? ""
|
|
||||||
: String
|
|
||||||
.format(
|
|
||||||
"%s::%s",
|
|
||||||
key != null ? key.toLowerCase() : "", value != null ? value.toLowerCase() : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public boolean isBlank() {
|
|
||||||
return StringUtils.isBlank(key) && StringUtils.isBlank(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return toComparableString().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
KeyValue other = (KeyValue) obj;
|
|
||||||
|
|
||||||
return toComparableString().equals(other.toComparableString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represent a measure, must be further described by a system available resource providing name and descriptions.
|
|
||||||
*/
|
|
||||||
public class Measure {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unique measure identifier.
|
|
||||||
*/
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List of units associated with this measure. KeyValue provides a pair to store the laber (key) and the value, plus
|
|
||||||
* common provenance information.
|
|
||||||
*/
|
|
||||||
private List<KeyValue> unit;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<KeyValue> getUnit() {
|
|
||||||
return unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUnit(List<KeyValue> unit) {
|
|
||||||
this.unit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeFrom(Measure m) {
|
|
||||||
// TODO
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
Measure measure = (Measure) o;
|
|
||||||
return Objects.equal(id, measure.id) &&
|
|
||||||
Objects.equal(unit, measure.unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hashCode(id, unit);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class OAIProvenance implements Serializable {
|
|
||||||
|
|
||||||
private OriginDescription originDescription;
|
|
||||||
|
|
||||||
public OriginDescription getOriginDescription() {
|
|
||||||
return originDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginDescription(OriginDescription originDescription) {
|
|
||||||
this.originDescription = originDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
OAIProvenance that = (OAIProvenance) o;
|
|
||||||
return Objects.equals(originDescription, that.originDescription);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(originDescription);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,102 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
public abstract class Oaf implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The list of datasource id/name pairs providing this relationship.
|
|
||||||
*/
|
|
||||||
protected List<KeyValue> collectedfrom;
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
private Long lastupdatetimestamp;
|
|
||||||
|
|
||||||
public List<KeyValue> getCollectedfrom() {
|
|
||||||
return collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCollectedfrom(List<KeyValue> collectedfrom) {
|
|
||||||
this.collectedfrom = collectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getLastupdatetimestamp() {
|
|
||||||
return lastupdatetimestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLastupdatetimestamp(Long lastupdatetimestamp) {
|
|
||||||
this.lastupdatetimestamp = lastupdatetimestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeFrom(Oaf o) {
|
|
||||||
if (Objects.isNull(o)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
setCollectedfrom(
|
|
||||||
Stream
|
|
||||||
.concat(
|
|
||||||
Optional
|
|
||||||
.ofNullable(getCollectedfrom())
|
|
||||||
.map(Collection::stream)
|
|
||||||
.orElse(Stream.empty()),
|
|
||||||
Optional
|
|
||||||
.ofNullable(o.getCollectedfrom())
|
|
||||||
.map(Collection::stream)
|
|
||||||
.orElse(Stream.empty()))
|
|
||||||
.distinct() // relies on KeyValue.equals
|
|
||||||
.collect(Collectors.toList()));
|
|
||||||
|
|
||||||
setLastupdatetimestamp(
|
|
||||||
Math
|
|
||||||
.max(
|
|
||||||
Optional.ofNullable(getLastupdatetimestamp()).orElse(0L),
|
|
||||||
Optional.ofNullable(o.getLastupdatetimestamp()).orElse(0L)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeOAFDataInfo(Oaf o) {
|
|
||||||
if (o.getDataInfo() != null && compareTrust(this, o) < 0)
|
|
||||||
dataInfo = o.getDataInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String extractTrust(Oaf e) {
|
|
||||||
if (e == null || e.getDataInfo() == null || e.getDataInfo().getTrust() == null)
|
|
||||||
return "0.0";
|
|
||||||
return e.getDataInfo().getTrust();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected int compareTrust(Oaf a, Oaf b) {
|
|
||||||
return extractTrust(a).compareTo(extractTrust(b));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
Oaf oaf = (Oaf) o;
|
|
||||||
return Objects.equals(getDataInfo(), oaf.getDataInfo())
|
|
||||||
&& Objects.equals(lastupdatetimestamp, oaf.lastupdatetimestamp);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(dataInfo, lastupdatetimestamp);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,126 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public abstract class OafEntity extends Oaf implements Serializable {
|
|
||||||
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private List<String> originalId;
|
|
||||||
|
|
||||||
private List<StructuredProperty> pid;
|
|
||||||
|
|
||||||
private String dateofcollection;
|
|
||||||
|
|
||||||
private String dateoftransformation;
|
|
||||||
|
|
||||||
private List<ExtraInfo> extraInfo;
|
|
||||||
|
|
||||||
private OAIProvenance oaiprovenance;
|
|
||||||
|
|
||||||
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<StructuredProperty> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<StructuredProperty> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateofcollection() {
|
|
||||||
return dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofcollection(String dateofcollection) {
|
|
||||||
this.dateofcollection = dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateoftransformation() {
|
|
||||||
return dateoftransformation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateoftransformation(String dateoftransformation) {
|
|
||||||
this.dateoftransformation = dateoftransformation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ExtraInfo> getExtraInfo() {
|
|
||||||
return extraInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExtraInfo(List<ExtraInfo> extraInfo) {
|
|
||||||
this.extraInfo = extraInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OAIProvenance getOaiprovenance() {
|
|
||||||
return oaiprovenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOaiprovenance(OAIProvenance oaiprovenance) {
|
|
||||||
this.oaiprovenance = oaiprovenance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
originalId = mergeLists(originalId, e.getOriginalId());
|
|
||||||
|
|
||||||
pid = mergeLists(pid, e.getPid());
|
|
||||||
|
|
||||||
if (e.getDateofcollection() != null && compareTrust(this, e) < 0)
|
|
||||||
dateofcollection = e.getDateofcollection();
|
|
||||||
|
|
||||||
if (e.getDateoftransformation() != null && compareTrust(this, e) < 0)
|
|
||||||
dateoftransformation = e.getDateoftransformation();
|
|
||||||
|
|
||||||
extraInfo = mergeLists(extraInfo, e.getExtraInfo());
|
|
||||||
|
|
||||||
if (e.getOaiprovenance() != null && compareTrust(this, e) < 0)
|
|
||||||
oaiprovenance = e.getOaiprovenance();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected <T> List<T> mergeLists(final List<T>... lists) {
|
|
||||||
|
|
||||||
return Arrays
|
|
||||||
.stream(lists)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.flatMap(List::stream)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.distinct()
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
if (!super.equals(o))
|
|
||||||
return false;
|
|
||||||
OafEntity oafEntity = (OafEntity) o;
|
|
||||||
return Objects.equals(id, oafEntity.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(super.hashCode(), id);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,214 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Organization extends OafEntity implements Serializable {
|
|
||||||
|
|
||||||
private Field<String> legalshortname;
|
|
||||||
|
|
||||||
private Field<String> legalname;
|
|
||||||
|
|
||||||
private List<Field<String>> alternativeNames;
|
|
||||||
|
|
||||||
private Field<String> websiteurl;
|
|
||||||
|
|
||||||
private Field<String> logourl;
|
|
||||||
|
|
||||||
private Field<String> eclegalbody;
|
|
||||||
|
|
||||||
private Field<String> eclegalperson;
|
|
||||||
|
|
||||||
private Field<String> ecnonprofit;
|
|
||||||
|
|
||||||
private Field<String> ecresearchorganization;
|
|
||||||
|
|
||||||
private Field<String> echighereducation;
|
|
||||||
|
|
||||||
private Field<String> ecinternationalorganizationeurinterests;
|
|
||||||
|
|
||||||
private Field<String> ecinternationalorganization;
|
|
||||||
|
|
||||||
private Field<String> ecenterprise;
|
|
||||||
|
|
||||||
private Field<String> ecsmevalidated;
|
|
||||||
|
|
||||||
private Field<String> ecnutscode;
|
|
||||||
|
|
||||||
private Qualifier country;
|
|
||||||
|
|
||||||
public Field<String> getLegalshortname() {
|
|
||||||
return legalshortname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLegalshortname(Field<String> legalshortname) {
|
|
||||||
this.legalshortname = legalshortname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLegalname() {
|
|
||||||
return legalname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLegalname(Field<String> legalname) {
|
|
||||||
this.legalname = legalname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getAlternativeNames() {
|
|
||||||
return alternativeNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAlternativeNames(List<Field<String>> alternativeNames) {
|
|
||||||
this.alternativeNames = alternativeNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(Field<String> websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getLogourl() {
|
|
||||||
return logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLogourl(Field<String> logourl) {
|
|
||||||
this.logourl = logourl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEclegalbody() {
|
|
||||||
return eclegalbody;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEclegalbody(Field<String> eclegalbody) {
|
|
||||||
this.eclegalbody = eclegalbody;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEclegalperson() {
|
|
||||||
return eclegalperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEclegalperson(Field<String> eclegalperson) {
|
|
||||||
this.eclegalperson = eclegalperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcnonprofit() {
|
|
||||||
return ecnonprofit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcnonprofit(Field<String> ecnonprofit) {
|
|
||||||
this.ecnonprofit = ecnonprofit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcresearchorganization() {
|
|
||||||
return ecresearchorganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcresearchorganization(Field<String> ecresearchorganization) {
|
|
||||||
this.ecresearchorganization = ecresearchorganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEchighereducation() {
|
|
||||||
return echighereducation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEchighereducation(Field<String> echighereducation) {
|
|
||||||
this.echighereducation = echighereducation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcinternationalorganizationeurinterests() {
|
|
||||||
return ecinternationalorganizationeurinterests;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcinternationalorganizationeurinterests(
|
|
||||||
Field<String> ecinternationalorganizationeurinterests) {
|
|
||||||
this.ecinternationalorganizationeurinterests = ecinternationalorganizationeurinterests;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcinternationalorganization() {
|
|
||||||
return ecinternationalorganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcinternationalorganization(Field<String> ecinternationalorganization) {
|
|
||||||
this.ecinternationalorganization = ecinternationalorganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcenterprise() {
|
|
||||||
return ecenterprise;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcenterprise(Field<String> ecenterprise) {
|
|
||||||
this.ecenterprise = ecenterprise;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcsmevalidated() {
|
|
||||||
return ecsmevalidated;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcsmevalidated(Field<String> ecsmevalidated) {
|
|
||||||
this.ecsmevalidated = ecsmevalidated;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcnutscode() {
|
|
||||||
return ecnutscode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcnutscode(Field<String> ecnutscode) {
|
|
||||||
this.ecnutscode = ecnutscode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(Qualifier country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Organization.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final Organization o = (Organization) e;
|
|
||||||
legalshortname = o.getLegalshortname() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getLegalshortname()
|
|
||||||
: legalshortname;
|
|
||||||
legalname = o.getLegalname() != null && compareTrust(this, e) < 0 ? o.getLegalname() : legalname;
|
|
||||||
alternativeNames = mergeLists(o.getAlternativeNames(), alternativeNames);
|
|
||||||
websiteurl = o.getWebsiteurl() != null && compareTrust(this, e) < 0 ? o.getWebsiteurl() : websiteurl;
|
|
||||||
logourl = o.getLogourl() != null && compareTrust(this, e) < 0 ? o.getLogourl() : logourl;
|
|
||||||
eclegalbody = o.getEclegalbody() != null && compareTrust(this, e) < 0 ? o.getEclegalbody() : eclegalbody;
|
|
||||||
eclegalperson = o.getEclegalperson() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEclegalperson()
|
|
||||||
: eclegalperson;
|
|
||||||
ecnonprofit = o.getEcnonprofit() != null && compareTrust(this, e) < 0 ? o.getEcnonprofit() : ecnonprofit;
|
|
||||||
ecresearchorganization = o.getEcresearchorganization() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEcresearchorganization()
|
|
||||||
: ecresearchorganization;
|
|
||||||
echighereducation = o.getEchighereducation() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEchighereducation()
|
|
||||||
: echighereducation;
|
|
||||||
ecinternationalorganizationeurinterests = o.getEcinternationalorganizationeurinterests() != null
|
|
||||||
&& compareTrust(this, e) < 0
|
|
||||||
? o.getEcinternationalorganizationeurinterests()
|
|
||||||
: ecinternationalorganizationeurinterests;
|
|
||||||
ecinternationalorganization = o.getEcinternationalorganization() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEcinternationalorganization()
|
|
||||||
: ecinternationalorganization;
|
|
||||||
ecenterprise = o.getEcenterprise() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEcenterprise()
|
|
||||||
: ecenterprise;
|
|
||||||
ecsmevalidated = o.getEcsmevalidated() != null && compareTrust(this, e) < 0
|
|
||||||
? o.getEcsmevalidated()
|
|
||||||
: ecsmevalidated;
|
|
||||||
ecnutscode = o.getEcnutscode() != null && compareTrust(this, e) < 0 ? o.getEcnutscode() : ecnutscode;
|
|
||||||
country = o.getCountry() != null && compareTrust(this, e) < 0 ? o.getCountry() : country;
|
|
||||||
mergeOAFDataInfo(o);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,88 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class OriginDescription implements Serializable {
|
|
||||||
|
|
||||||
private String harvestDate;
|
|
||||||
|
|
||||||
private Boolean altered = true;
|
|
||||||
|
|
||||||
private String baseURL;
|
|
||||||
|
|
||||||
private String identifier;
|
|
||||||
|
|
||||||
private String datestamp;
|
|
||||||
|
|
||||||
private String metadataNamespace;
|
|
||||||
|
|
||||||
public String getHarvestDate() {
|
|
||||||
return harvestDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHarvestDate(String harvestDate) {
|
|
||||||
this.harvestDate = harvestDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getAltered() {
|
|
||||||
return altered;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAltered(Boolean altered) {
|
|
||||||
this.altered = altered;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBaseURL() {
|
|
||||||
return baseURL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBaseURL(String baseURL) {
|
|
||||||
this.baseURL = baseURL;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIdentifier() {
|
|
||||||
return identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIdentifier(String identifier) {
|
|
||||||
this.identifier = identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDatestamp() {
|
|
||||||
return datestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatestamp(String datestamp) {
|
|
||||||
this.datestamp = datestamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMetadataNamespace() {
|
|
||||||
return metadataNamespace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMetadataNamespace(String metadataNamespace) {
|
|
||||||
this.metadataNamespace = metadataNamespace;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
OriginDescription that = (OriginDescription) o;
|
|
||||||
return Objects.equals(harvestDate, that.harvestDate)
|
|
||||||
&& Objects.equals(altered, that.altered)
|
|
||||||
&& Objects.equals(baseURL, that.baseURL)
|
|
||||||
&& Objects.equals(identifier, that.identifier)
|
|
||||||
&& Objects.equals(datestamp, that.datestamp)
|
|
||||||
&& Objects.equals(metadataNamespace, that.metadataNamespace);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(harvestDate, altered, baseURL, identifier, datestamp, metadataNamespace);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
|
||||||
|
|
||||||
public class OtherResearchProduct extends Result implements Serializable {
|
|
||||||
|
|
||||||
private List<Field<String>> contactperson;
|
|
||||||
|
|
||||||
private List<Field<String>> contactgroup;
|
|
||||||
|
|
||||||
private List<Field<String>> tool;
|
|
||||||
|
|
||||||
public OtherResearchProduct() {
|
|
||||||
setResulttype(ModelConstants.ORP_DEFAULT_RESULTTYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getContactperson() {
|
|
||||||
return contactperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactperson(List<Field<String>> contactperson) {
|
|
||||||
this.contactperson = contactperson;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getContactgroup() {
|
|
||||||
return contactgroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactgroup(List<Field<String>> contactgroup) {
|
|
||||||
this.contactgroup = contactgroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getTool() {
|
|
||||||
return tool;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTool(List<Field<String>> tool) {
|
|
||||||
this.tool = tool;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!OtherResearchProduct.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
OtherResearchProduct o = (OtherResearchProduct) e;
|
|
||||||
|
|
||||||
contactperson = mergeLists(contactperson, o.getContactperson());
|
|
||||||
contactgroup = mergeLists(contactgroup, o.getContactgroup());
|
|
||||||
tool = mergeLists(tool, o.getTool());
|
|
||||||
mergeOAFDataInfo(e);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,358 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Project extends OafEntity implements Serializable {
|
|
||||||
|
|
||||||
private Field<String> websiteurl;
|
|
||||||
|
|
||||||
private Field<String> code;
|
|
||||||
|
|
||||||
private Field<String> acronym;
|
|
||||||
|
|
||||||
private Field<String> title;
|
|
||||||
|
|
||||||
private Field<String> startdate;
|
|
||||||
|
|
||||||
private Field<String> enddate;
|
|
||||||
|
|
||||||
private Field<String> callidentifier;
|
|
||||||
|
|
||||||
private Field<String> keywords;
|
|
||||||
|
|
||||||
private Field<String> duration;
|
|
||||||
|
|
||||||
private Field<String> ecsc39;
|
|
||||||
|
|
||||||
private Field<String> oamandatepublications;
|
|
||||||
|
|
||||||
private Field<String> ecarticle29_3;
|
|
||||||
|
|
||||||
private List<StructuredProperty> subjects;
|
|
||||||
|
|
||||||
private List<Field<String>> fundingtree;
|
|
||||||
|
|
||||||
private Qualifier contracttype;
|
|
||||||
|
|
||||||
private Field<String> optional1;
|
|
||||||
|
|
||||||
private Field<String> optional2;
|
|
||||||
|
|
||||||
private Field<String> jsonextrainfo;
|
|
||||||
|
|
||||||
private Field<String> contactfullname;
|
|
||||||
|
|
||||||
private Field<String> contactfax;
|
|
||||||
|
|
||||||
private Field<String> contactphone;
|
|
||||||
|
|
||||||
private Field<String> contactemail;
|
|
||||||
|
|
||||||
private Field<String> summary;
|
|
||||||
|
|
||||||
private Field<String> currency;
|
|
||||||
|
|
||||||
private Float totalcost;
|
|
||||||
|
|
||||||
private Float fundedamount;
|
|
||||||
|
|
||||||
private String h2020topiccode;
|
|
||||||
|
|
||||||
private String h2020topicdescription;
|
|
||||||
|
|
||||||
private List<H2020Classification> h2020classification;
|
|
||||||
|
|
||||||
public String getH2020topicdescription() {
|
|
||||||
return h2020topicdescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setH2020topicdescription(String h2020topicdescription) {
|
|
||||||
this.h2020topicdescription = h2020topicdescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getH2020topiccode() {
|
|
||||||
return h2020topiccode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setH2020topiccode(String h2020topiccode) {
|
|
||||||
this.h2020topiccode = h2020topiccode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<H2020Classification> getH2020classification() {
|
|
||||||
return h2020classification;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setH2020classification(List<H2020Classification> h2020classification) {
|
|
||||||
this.h2020classification = h2020classification;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getWebsiteurl() {
|
|
||||||
return websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWebsiteurl(Field<String> websiteurl) {
|
|
||||||
this.websiteurl = websiteurl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCode() {
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCode(Field<String> code) {
|
|
||||||
this.code = code;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getAcronym() {
|
|
||||||
return acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAcronym(Field<String> acronym) {
|
|
||||||
this.acronym = acronym;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(Field<String> title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getStartdate() {
|
|
||||||
return startdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartdate(Field<String> startdate) {
|
|
||||||
this.startdate = startdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEnddate() {
|
|
||||||
return enddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEnddate(Field<String> enddate) {
|
|
||||||
this.enddate = enddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCallidentifier() {
|
|
||||||
return callidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCallidentifier(Field<String> callidentifier) {
|
|
||||||
this.callidentifier = callidentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getKeywords() {
|
|
||||||
return keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setKeywords(Field<String> keywords) {
|
|
||||||
this.keywords = keywords;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDuration() {
|
|
||||||
return duration;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDuration(Field<String> duration) {
|
|
||||||
this.duration = duration;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcsc39() {
|
|
||||||
return ecsc39;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcsc39(Field<String> ecsc39) {
|
|
||||||
this.ecsc39 = ecsc39;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOamandatepublications() {
|
|
||||||
return oamandatepublications;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOamandatepublications(Field<String> oamandatepublications) {
|
|
||||||
this.oamandatepublications = oamandatepublications;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEcarticle29_3() {
|
|
||||||
return ecarticle29_3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEcarticle29_3(Field<String> ecarticle29_3) {
|
|
||||||
this.ecarticle29_3 = ecarticle29_3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getSubjects() {
|
|
||||||
return subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubjects(List<StructuredProperty> subjects) {
|
|
||||||
this.subjects = subjects;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getFundingtree() {
|
|
||||||
return fundingtree;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFundingtree(List<Field<String>> fundingtree) {
|
|
||||||
this.fundingtree = fundingtree;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getContracttype() {
|
|
||||||
return contracttype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContracttype(Qualifier contracttype) {
|
|
||||||
this.contracttype = contracttype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOptional1() {
|
|
||||||
return optional1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOptional1(Field<String> optional1) {
|
|
||||||
this.optional1 = optional1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getOptional2() {
|
|
||||||
return optional2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOptional2(Field<String> optional2) {
|
|
||||||
this.optional2 = optional2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getJsonextrainfo() {
|
|
||||||
return jsonextrainfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJsonextrainfo(Field<String> jsonextrainfo) {
|
|
||||||
this.jsonextrainfo = jsonextrainfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getContactfullname() {
|
|
||||||
return contactfullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactfullname(Field<String> contactfullname) {
|
|
||||||
this.contactfullname = contactfullname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getContactfax() {
|
|
||||||
return contactfax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactfax(Field<String> contactfax) {
|
|
||||||
this.contactfax = contactfax;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getContactphone() {
|
|
||||||
return contactphone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactphone(Field<String> contactphone) {
|
|
||||||
this.contactphone = contactphone;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getContactemail() {
|
|
||||||
return contactemail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContactemail(Field<String> contactemail) {
|
|
||||||
this.contactemail = contactemail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getSummary() {
|
|
||||||
return summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSummary(Field<String> summary) {
|
|
||||||
this.summary = summary;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCurrency() {
|
|
||||||
return currency;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCurrency(Field<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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Project.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Project p = (Project) e;
|
|
||||||
|
|
||||||
websiteurl = p.getWebsiteurl() != null && compareTrust(this, e) < 0 ? p.getWebsiteurl() : websiteurl;
|
|
||||||
code = p.getCode() != null && compareTrust(this, e) < 0 ? p.getCode() : code;
|
|
||||||
acronym = p.getAcronym() != null && compareTrust(this, e) < 0 ? p.getAcronym() : acronym;
|
|
||||||
title = p.getTitle() != null && compareTrust(this, e) < 0 ? p.getTitle() : title;
|
|
||||||
startdate = p.getStartdate() != null && compareTrust(this, e) < 0 ? p.getStartdate() : startdate;
|
|
||||||
enddate = p.getEnddate() != null && compareTrust(this, e) < 0 ? p.getEnddate() : enddate;
|
|
||||||
callidentifier = p.getCallidentifier() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getCallidentifier()
|
|
||||||
: callidentifier;
|
|
||||||
keywords = p.getKeywords() != null && compareTrust(this, e) < 0 ? p.getKeywords() : keywords;
|
|
||||||
duration = p.getDuration() != null && compareTrust(this, e) < 0 ? p.getDuration() : duration;
|
|
||||||
ecsc39 = p.getEcsc39() != null && compareTrust(this, e) < 0 ? p.getEcsc39() : ecsc39;
|
|
||||||
oamandatepublications = p.getOamandatepublications() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getOamandatepublications()
|
|
||||||
: oamandatepublications;
|
|
||||||
ecarticle29_3 = p.getEcarticle29_3() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getEcarticle29_3()
|
|
||||||
: ecarticle29_3;
|
|
||||||
subjects = mergeLists(subjects, p.getSubjects());
|
|
||||||
fundingtree = mergeLists(fundingtree, p.getFundingtree());
|
|
||||||
contracttype = p.getContracttype() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getContracttype()
|
|
||||||
: contracttype;
|
|
||||||
optional1 = p.getOptional1() != null && compareTrust(this, e) < 0 ? p.getOptional1() : optional1;
|
|
||||||
optional2 = p.getOptional2() != null && compareTrust(this, e) < 0 ? p.getOptional2() : optional2;
|
|
||||||
jsonextrainfo = p.getJsonextrainfo() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getJsonextrainfo()
|
|
||||||
: jsonextrainfo;
|
|
||||||
contactfullname = p.getContactfullname() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getContactfullname()
|
|
||||||
: contactfullname;
|
|
||||||
contactfax = p.getContactfax() != null && compareTrust(this, e) < 0 ? p.getContactfax() : contactfax;
|
|
||||||
contactphone = p.getContactphone() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getContactphone()
|
|
||||||
: contactphone;
|
|
||||||
contactemail = p.getContactemail() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getContactemail()
|
|
||||||
: contactemail;
|
|
||||||
summary = p.getSummary() != null && compareTrust(this, e) < 0 ? p.getSummary() : summary;
|
|
||||||
currency = p.getCurrency() != null && compareTrust(this, e) < 0 ? p.getCurrency() : currency;
|
|
||||||
totalcost = p.getTotalcost() != null && compareTrust(this, e) < 0 ? p.getTotalcost() : totalcost;
|
|
||||||
fundedamount = p.getFundedamount() != null && compareTrust(this, e) < 0
|
|
||||||
? p.getFundedamount()
|
|
||||||
: fundedamount;
|
|
||||||
|
|
||||||
h2020classification = mergeLists(h2020classification, p.getH2020classification());
|
|
||||||
|
|
||||||
mergeOAFDataInfo(e);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
|
||||||
|
|
||||||
public class Publication extends Result implements Serializable {
|
|
||||||
|
|
||||||
// publication specific
|
|
||||||
private Journal journal;
|
|
||||||
|
|
||||||
public Publication() {
|
|
||||||
setResulttype(ModelConstants.PUBLICATION_DEFAULT_RESULTTYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Journal getJournal() {
|
|
||||||
return journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJournal(Journal journal) {
|
|
||||||
this.journal = journal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Publication.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Publication p = (Publication) e;
|
|
||||||
|
|
||||||
if (p.getJournal() != null && compareTrust(this, e) < 0)
|
|
||||||
journal = p.getJournal();
|
|
||||||
mergeOAFDataInfo(e);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
|
|
||||||
public class Qualifier implements Serializable {
|
|
||||||
|
|
||||||
private String classid;
|
|
||||||
private String classname;
|
|
||||||
private String schemeid;
|
|
||||||
private String schemename;
|
|
||||||
|
|
||||||
public String getClassid() {
|
|
||||||
return classid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClassid(String classid) {
|
|
||||||
this.classid = classid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getClassname() {
|
|
||||||
return classname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setClassname(String classname) {
|
|
||||||
this.classname = classname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSchemeid() {
|
|
||||||
return schemeid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSchemeid(String schemeid) {
|
|
||||||
this.schemeid = schemeid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSchemename() {
|
|
||||||
return schemename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSchemename(String schemename) {
|
|
||||||
this.schemename = schemename;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toComparableString() {
|
|
||||||
return isBlank()
|
|
||||||
? ""
|
|
||||||
: String
|
|
||||||
.format(
|
|
||||||
"%s::%s::%s::%s",
|
|
||||||
classid != null ? classid : "",
|
|
||||||
classname != null ? classname : "",
|
|
||||||
schemeid != null ? schemeid : "",
|
|
||||||
schemename != null ? schemename : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public boolean isBlank() {
|
|
||||||
return StringUtils.isBlank(classid)
|
|
||||||
&& StringUtils.isBlank(classname)
|
|
||||||
&& StringUtils.isBlank(schemeid)
|
|
||||||
&& StringUtils.isBlank(schemename);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return toComparableString().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
Qualifier other = (Qualifier) obj;
|
|
||||||
|
|
||||||
return toComparableString().equals(other.toComparableString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,168 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelSupport;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Relation models any edge between two nodes in the OpenAIRE graph. It has a source id and a target id pointing to
|
|
||||||
* graph node identifiers and it is further characterised by the semantic of the link through the fields relType,
|
|
||||||
* subRelType and relClass. Provenance information is modeled according to the dataInfo element and collectedFrom, while
|
|
||||||
* individual relationship types can provide extra information via the properties field.
|
|
||||||
*/
|
|
||||||
public class Relation extends Oaf {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Main relationship classifier, values include 'resultResult', 'resultProject', 'resultOrganization', etc.
|
|
||||||
*/
|
|
||||||
private String relType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Further classifies a relationship, values include 'affiliation', 'similarity', 'supplement', etc.
|
|
||||||
*/
|
|
||||||
private String subRelType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indicates the direction of the relationship, values include 'isSupplementTo', 'isSupplementedBy', 'merges,
|
|
||||||
* 'isMergedIn'.
|
|
||||||
*/
|
|
||||||
private String relClass;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The source entity id.
|
|
||||||
*/
|
|
||||||
private String source;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The target entity id.
|
|
||||||
*/
|
|
||||||
private String target;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Was this relationship authoritatively validated?
|
|
||||||
*/
|
|
||||||
private Boolean validated;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* When was this relationship authoritatively validated.
|
|
||||||
*/
|
|
||||||
private String validationDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* List of relation specific properties. Values include 'similarityLevel', indicating the similarity score between a
|
|
||||||
* pair of publications.
|
|
||||||
*/
|
|
||||||
private List<KeyValue> properties = new ArrayList<>();
|
|
||||||
|
|
||||||
public String getRelType() {
|
|
||||||
return relType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRelType(final String relType) {
|
|
||||||
this.relType = relType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSubRelType() {
|
|
||||||
return subRelType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubRelType(final String subRelType) {
|
|
||||||
this.subRelType = subRelType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRelClass() {
|
|
||||||
return relClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRelClass(final String relClass) {
|
|
||||||
this.relClass = relClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSource() {
|
|
||||||
return source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSource(final String source) {
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTarget() {
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTarget(final String target) {
|
|
||||||
this.target = target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<KeyValue> getProperties() {
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProperties(List<KeyValue> properties) {
|
|
||||||
this.properties = properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getValidated() {
|
|
||||||
return Objects.nonNull(validated) && validated;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValidated(Boolean validated) {
|
|
||||||
this.validated = validated;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getValidationDate() {
|
|
||||||
return validationDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValidationDate(String validationDate) {
|
|
||||||
this.validationDate = validationDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeFrom(final Relation r) {
|
|
||||||
|
|
||||||
checkArgument(Objects.equals(getSource(), r.getSource()), "source ids must be equal");
|
|
||||||
checkArgument(Objects.equals(getTarget(), r.getTarget()), "target ids must be equal");
|
|
||||||
checkArgument(Objects.equals(getRelType(), r.getRelType()), "relType(s) must be equal");
|
|
||||||
checkArgument(
|
|
||||||
Objects.equals(getSubRelType(), r.getSubRelType()), "subRelType(s) must be equal");
|
|
||||||
checkArgument(Objects.equals(getRelClass(), r.getRelClass()), "relClass(es) must be equal");
|
|
||||||
|
|
||||||
setValidated(getValidated() || r.getValidated());
|
|
||||||
try {
|
|
||||||
setValidationDate(ModelSupport.oldest(getValidationDate(), r.getValidationDate()));
|
|
||||||
} catch (ParseException e) {
|
|
||||||
throw new IllegalArgumentException(String
|
|
||||||
.format(
|
|
||||||
"invalid validation date format in relation [s:%s, t:%s]: %s", getSource(), getTarget(),
|
|
||||||
getValidationDate()));
|
|
||||||
}
|
|
||||||
|
|
||||||
super.mergeFrom(r);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o)
|
|
||||||
return true;
|
|
||||||
if (o == null || getClass() != o.getClass())
|
|
||||||
return false;
|
|
||||||
Relation relation = (Relation) o;
|
|
||||||
return relType.equals(relation.relType)
|
|
||||||
&& subRelType.equals(relation.subRelType)
|
|
||||||
&& relClass.equals(relation.relClass)
|
|
||||||
&& source.equals(relation.source)
|
|
||||||
&& target.equals(relation.target);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(relType, subRelType, relClass, source, target, collectedfrom);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,351 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.LicenseComparator;
|
|
||||||
|
|
||||||
public class Result extends OafEntity implements Serializable {
|
|
||||||
|
|
||||||
private List<Measure> measures;
|
|
||||||
|
|
||||||
private List<Author> author;
|
|
||||||
|
|
||||||
// resulttype allows subclassing results into publications | datasets | software
|
|
||||||
private Qualifier resulttype;
|
|
||||||
|
|
||||||
// common fields
|
|
||||||
private Qualifier language;
|
|
||||||
|
|
||||||
private List<Country> country;
|
|
||||||
|
|
||||||
private List<StructuredProperty> subject;
|
|
||||||
|
|
||||||
private List<StructuredProperty> title;
|
|
||||||
|
|
||||||
private List<StructuredProperty> relevantdate;
|
|
||||||
|
|
||||||
private List<Field<String>> description;
|
|
||||||
|
|
||||||
private Field<String> dateofacceptance;
|
|
||||||
|
|
||||||
private Field<String> publisher;
|
|
||||||
|
|
||||||
private Field<String> embargoenddate;
|
|
||||||
|
|
||||||
private List<Field<String>> source;
|
|
||||||
|
|
||||||
private List<Field<String>> fulltext; // remove candidate
|
|
||||||
|
|
||||||
private List<Field<String>> format;
|
|
||||||
|
|
||||||
private List<Field<String>> contributor;
|
|
||||||
|
|
||||||
private Qualifier resourcetype;
|
|
||||||
|
|
||||||
private List<Field<String>> coverage;
|
|
||||||
|
|
||||||
private Qualifier bestaccessright;
|
|
||||||
|
|
||||||
private List<Context> context;
|
|
||||||
|
|
||||||
private List<ExternalReference> externalReference;
|
|
||||||
|
|
||||||
private List<Instance> instance;
|
|
||||||
|
|
||||||
public List<Measure> getMeasures() {
|
|
||||||
return measures;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMeasures(List<Measure> measures) {
|
|
||||||
this.measures = measures;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Author> getAuthor() {
|
|
||||||
return author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuthor(List<Author> author) {
|
|
||||||
this.author = author;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getResulttype() {
|
|
||||||
return resulttype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setResulttype(Qualifier resulttype) {
|
|
||||||
this.resulttype = resulttype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getLanguage() {
|
|
||||||
return language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLanguage(Qualifier language) {
|
|
||||||
this.language = language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Country> getCountry() {
|
|
||||||
return country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCountry(List<Country> country) {
|
|
||||||
this.country = country;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getSubject() {
|
|
||||||
return subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSubject(List<StructuredProperty> subject) {
|
|
||||||
this.subject = subject;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(List<StructuredProperty> title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getRelevantdate() {
|
|
||||||
return relevantdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRelevantdate(List<StructuredProperty> relevantdate) {
|
|
||||||
this.relevantdate = relevantdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(List<Field<String>> description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getDateofacceptance() {
|
|
||||||
return dateofacceptance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofacceptance(Field<String> dateofacceptance) {
|
|
||||||
this.dateofacceptance = dateofacceptance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getPublisher() {
|
|
||||||
return publisher;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublisher(Field<String> publisher) {
|
|
||||||
this.publisher = publisher;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getEmbargoenddate() {
|
|
||||||
return embargoenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEmbargoenddate(Field<String> embargoenddate) {
|
|
||||||
this.embargoenddate = embargoenddate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getSource() {
|
|
||||||
return source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSource(List<Field<String>> source) {
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getFulltext() {
|
|
||||||
return fulltext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFulltext(List<Field<String>> fulltext) {
|
|
||||||
this.fulltext = fulltext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getFormat() {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormat(List<Field<String>> format) {
|
|
||||||
this.format = format;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getContributor() {
|
|
||||||
return contributor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContributor(List<Field<String>> contributor) {
|
|
||||||
this.contributor = contributor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getResourcetype() {
|
|
||||||
return resourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setResourcetype(Qualifier resourcetype) {
|
|
||||||
this.resourcetype = resourcetype;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getCoverage() {
|
|
||||||
return coverage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCoverage(List<Field<String>> coverage) {
|
|
||||||
this.coverage = coverage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getBestaccessright() {
|
|
||||||
return bestaccessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBestaccessright(Qualifier bestaccessright) {
|
|
||||||
this.bestaccessright = bestaccessright;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Context> getContext() {
|
|
||||||
return context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setContext(List<Context> context) {
|
|
||||||
this.context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ExternalReference> getExternalReference() {
|
|
||||||
return externalReference;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExternalReference(List<ExternalReference> externalReference) {
|
|
||||||
this.externalReference = externalReference;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Instance> getInstance() {
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInstance(List<Instance> instance) {
|
|
||||||
this.instance = instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Result.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Result r = (Result) e;
|
|
||||||
|
|
||||||
measures = mergeLists(measures, r.getMeasures());
|
|
||||||
|
|
||||||
instance = mergeLists(instance, r.getInstance());
|
|
||||||
|
|
||||||
if (r.getBestaccessright() != null
|
|
||||||
&& new LicenseComparator().compare(r.getBestaccessright(), bestaccessright) < 0)
|
|
||||||
bestaccessright = r.getBestaccessright();
|
|
||||||
|
|
||||||
if (r.getResulttype() != null && compareTrust(this, r) < 0)
|
|
||||||
resulttype = r.getResulttype();
|
|
||||||
|
|
||||||
if (r.getLanguage() != null && compareTrust(this, r) < 0)
|
|
||||||
language = r.getLanguage();
|
|
||||||
|
|
||||||
country = mergeLists(country, r.getCountry());
|
|
||||||
|
|
||||||
subject = mergeLists(subject, r.getSubject());
|
|
||||||
|
|
||||||
// merge title lists: main title with higher trust and distinct between the others
|
|
||||||
StructuredProperty baseMainTitle = null;
|
|
||||||
if (title != null) {
|
|
||||||
baseMainTitle = getMainTitle(title);
|
|
||||||
if (baseMainTitle != null) {
|
|
||||||
final StructuredProperty p = baseMainTitle;
|
|
||||||
title = title.stream().filter(t -> t != p).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
StructuredProperty newMainTitle = null;
|
|
||||||
if (r.getTitle() != null) {
|
|
||||||
newMainTitle = getMainTitle(r.getTitle());
|
|
||||||
if (newMainTitle != null) {
|
|
||||||
final StructuredProperty p = newMainTitle;
|
|
||||||
r.setTitle(r.getTitle().stream().filter(t -> t != p).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newMainTitle != null && compareTrust(this, r) < 0) {
|
|
||||||
baseMainTitle = newMainTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
title = mergeLists(title, r.getTitle());
|
|
||||||
if (title != null && baseMainTitle != null) {
|
|
||||||
title.add(baseMainTitle);
|
|
||||||
}
|
|
||||||
|
|
||||||
relevantdate = mergeLists(relevantdate, r.getRelevantdate());
|
|
||||||
|
|
||||||
description = longestLists(description, r.getDescription());
|
|
||||||
|
|
||||||
if (r.getPublisher() != null && compareTrust(this, r) < 0)
|
|
||||||
publisher = r.getPublisher();
|
|
||||||
|
|
||||||
if (r.getEmbargoenddate() != null && compareTrust(this, r) < 0)
|
|
||||||
embargoenddate = r.getEmbargoenddate();
|
|
||||||
|
|
||||||
source = mergeLists(source, r.getSource());
|
|
||||||
|
|
||||||
fulltext = mergeLists(fulltext, r.getFulltext());
|
|
||||||
|
|
||||||
format = mergeLists(format, r.getFormat());
|
|
||||||
|
|
||||||
contributor = mergeLists(contributor, r.getContributor());
|
|
||||||
|
|
||||||
if (r.getResourcetype() != null)
|
|
||||||
resourcetype = r.getResourcetype();
|
|
||||||
|
|
||||||
coverage = mergeLists(coverage, r.getCoverage());
|
|
||||||
|
|
||||||
context = mergeLists(context, r.getContext());
|
|
||||||
|
|
||||||
externalReference = mergeLists(externalReference, r.getExternalReference());
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Field<String>> longestLists(List<Field<String>> a, List<Field<String>> b) {
|
|
||||||
if (a == null || b == null)
|
|
||||||
return a == null ? b : a;
|
|
||||||
if (a.size() == b.size()) {
|
|
||||||
int msa = a
|
|
||||||
.stream()
|
|
||||||
.filter(i -> i != null && i.getValue() != null)
|
|
||||||
.map(i -> i.getValue().length())
|
|
||||||
.max(Comparator.naturalOrder())
|
|
||||||
.orElse(0);
|
|
||||||
int msb = b
|
|
||||||
.stream()
|
|
||||||
.filter(i -> i != null && i.getValue() != null)
|
|
||||||
.map(i -> i.getValue().length())
|
|
||||||
.max(Comparator.naturalOrder())
|
|
||||||
.orElse(0);
|
|
||||||
return msa > msb ? a : b;
|
|
||||||
}
|
|
||||||
return a.size() > b.size() ? a : b;
|
|
||||||
}
|
|
||||||
|
|
||||||
private StructuredProperty getMainTitle(List<StructuredProperty> titles) {
|
|
||||||
// need to check if the list of titles contains more than 1 main title? (in that case, we should chose which
|
|
||||||
// main title select in the list)
|
|
||||||
for (StructuredProperty title : titles) {
|
|
||||||
if (title.getQualifier() != null && title.getQualifier().getClassid() != null)
|
|
||||||
if (title.getQualifier().getClassid().equals("main title"))
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,80 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
|
||||||
|
|
||||||
public class Software extends Result implements Serializable {
|
|
||||||
|
|
||||||
private List<Field<String>> documentationUrl;
|
|
||||||
|
|
||||||
// candidate for removal
|
|
||||||
private List<StructuredProperty> license;
|
|
||||||
|
|
||||||
// candidate for removal
|
|
||||||
private Field<String> codeRepositoryUrl;
|
|
||||||
|
|
||||||
private Qualifier programmingLanguage;
|
|
||||||
|
|
||||||
public Software() {
|
|
||||||
setResulttype(ModelConstants.SOFTWARE_DEFAULT_RESULTTYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Field<String>> getDocumentationUrl() {
|
|
||||||
return documentationUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDocumentationUrl(List<Field<String>> documentationUrl) {
|
|
||||||
this.documentationUrl = documentationUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getLicense() {
|
|
||||||
return license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLicense(List<StructuredProperty> license) {
|
|
||||||
this.license = license;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Field<String> getCodeRepositoryUrl() {
|
|
||||||
return codeRepositoryUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodeRepositoryUrl(Field<String> codeRepositoryUrl) {
|
|
||||||
this.codeRepositoryUrl = codeRepositoryUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getProgrammingLanguage() {
|
|
||||||
return programmingLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setProgrammingLanguage(Qualifier programmingLanguage) {
|
|
||||||
this.programmingLanguage = programmingLanguage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
|
|
||||||
if (!Software.class.isAssignableFrom(e.getClass())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final Software s = (Software) e;
|
|
||||||
documentationUrl = mergeLists(documentationUrl, s.getDocumentationUrl());
|
|
||||||
|
|
||||||
license = mergeLists(license, s.getLicense());
|
|
||||||
|
|
||||||
codeRepositoryUrl = s.getCodeRepositoryUrl() != null && compareTrust(this, s) < 0
|
|
||||||
? s.getCodeRepositoryUrl()
|
|
||||||
: codeRepositoryUrl;
|
|
||||||
|
|
||||||
programmingLanguage = s.getProgrammingLanguage() != null && compareTrust(this, s) < 0
|
|
||||||
? s.getProgrammingLanguage()
|
|
||||||
: programmingLanguage;
|
|
||||||
|
|
||||||
mergeOAFDataInfo(e);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class StructuredProperty implements Serializable {
|
|
||||||
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
private Qualifier qualifier;
|
|
||||||
|
|
||||||
private DataInfo dataInfo;
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Qualifier getQualifier() {
|
|
||||||
return qualifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQualifier(Qualifier qualifier) {
|
|
||||||
this.qualifier = qualifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataInfo getDataInfo() {
|
|
||||||
return dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataInfo(DataInfo dataInfo) {
|
|
||||||
this.dataInfo = dataInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toComparableString() {
|
|
||||||
return value != null ? value.toLowerCase() : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return toComparableString().hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj) {
|
|
||||||
if (this == obj)
|
|
||||||
return true;
|
|
||||||
if (obj == null)
|
|
||||||
return false;
|
|
||||||
if (getClass() != obj.getClass())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
StructuredProperty other = (StructuredProperty) obj;
|
|
||||||
|
|
||||||
return toComparableString().equals(other.toComparableString());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.orcid;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class models the data that are retrieved from orcid publication
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class AuthorData implements Serializable {
|
|
||||||
|
|
||||||
private String oid;
|
|
||||||
private String name;
|
|
||||||
private String surname;
|
|
||||||
private String creditName;
|
|
||||||
private String errorCode;
|
|
||||||
private List<String> otherNames;
|
|
||||||
|
|
||||||
public String getErrorCode() {
|
|
||||||
return errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setErrorCode(String errorCode) {
|
|
||||||
this.errorCode = errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSurname() {
|
|
||||||
return surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSurname(String surname) {
|
|
||||||
this.surname = surname;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCreditName() {
|
|
||||||
return creditName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreditName(String creditName) {
|
|
||||||
this.creditName = creditName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOid() {
|
|
||||||
return oid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOid(String oid) {
|
|
||||||
this.oid = oid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getOtherNames() {
|
|
||||||
return otherNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOtherNames(List<String> otherNames) {
|
|
||||||
if (this.otherNames == null) {
|
|
||||||
this.otherNames = Lists.newArrayList();
|
|
||||||
}
|
|
||||||
this.otherNames = otherNames;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.orcid;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class OrcidDOI {
|
|
||||||
private String doi;
|
|
||||||
private List<AuthorData> authors;
|
|
||||||
|
|
||||||
public String getDoi() {
|
|
||||||
return doi;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDoi(String doi) {
|
|
||||||
this.doi = doi;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AuthorData> getAuthors() {
|
|
||||||
return authors;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuthors(List<AuthorData> authors) {
|
|
||||||
this.authors = authors;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.OafEntity;
|
|
||||||
|
|
||||||
public class DLIDataset extends Dataset {
|
|
||||||
|
|
||||||
private String originalObjIdentifier;
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> dlicollectedfrom;
|
|
||||||
|
|
||||||
private String completionStatus;
|
|
||||||
|
|
||||||
public String getCompletionStatus() {
|
|
||||||
return completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompletionStatus(String completionStatus) {
|
|
||||||
this.completionStatus = completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ProvenaceInfo> getDlicollectedfrom() {
|
|
||||||
return dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDlicollectedfrom(List<ProvenaceInfo> dlicollectedfrom) {
|
|
||||||
this.dlicollectedfrom = dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOriginalObjIdentifier() {
|
|
||||||
return originalObjIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalObjIdentifier(String originalObjIdentifier) {
|
|
||||||
this.originalObjIdentifier = originalObjIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
DLIDataset p = (DLIDataset) e;
|
|
||||||
if (StringUtils.isBlank(completionStatus) && StringUtils.isNotBlank(p.completionStatus))
|
|
||||||
completionStatus = p.completionStatus;
|
|
||||||
if ("complete".equalsIgnoreCase(p.completionStatus))
|
|
||||||
completionStatus = "complete";
|
|
||||||
dlicollectedfrom = mergeProvenance(dlicollectedfrom, p.getDlicollectedfrom());
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> mergeProvenance(
|
|
||||||
final List<ProvenaceInfo> a, final List<ProvenaceInfo> b) {
|
|
||||||
Map<String, ProvenaceInfo> result = new HashMap<>();
|
|
||||||
if (a != null)
|
|
||||||
a
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
if (b != null)
|
|
||||||
b
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
|
|
||||||
return new ArrayList<>(result.values());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.OafEntity;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Publication;
|
|
||||||
|
|
||||||
public class DLIPublication extends Publication implements Serializable {
|
|
||||||
|
|
||||||
private String originalObjIdentifier;
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> dlicollectedfrom;
|
|
||||||
|
|
||||||
private String completionStatus;
|
|
||||||
|
|
||||||
public String getCompletionStatus() {
|
|
||||||
return completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompletionStatus(String completionStatus) {
|
|
||||||
this.completionStatus = completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ProvenaceInfo> getDlicollectedfrom() {
|
|
||||||
return dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDlicollectedfrom(List<ProvenaceInfo> dlicollectedfrom) {
|
|
||||||
this.dlicollectedfrom = dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOriginalObjIdentifier() {
|
|
||||||
return originalObjIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOriginalObjIdentifier(String originalObjIdentifier) {
|
|
||||||
this.originalObjIdentifier = originalObjIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void mergeFrom(OafEntity e) {
|
|
||||||
super.mergeFrom(e);
|
|
||||||
DLIPublication p = (DLIPublication) e;
|
|
||||||
if (StringUtils.isBlank(completionStatus) && StringUtils.isNotBlank(p.completionStatus))
|
|
||||||
completionStatus = p.completionStatus;
|
|
||||||
if ("complete".equalsIgnoreCase(p.completionStatus))
|
|
||||||
completionStatus = "complete";
|
|
||||||
dlicollectedfrom = mergeProvenance(dlicollectedfrom, p.getDlicollectedfrom());
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> mergeProvenance(
|
|
||||||
final List<ProvenaceInfo> a, final List<ProvenaceInfo> b) {
|
|
||||||
Map<String, ProvenaceInfo> result = new HashMap<>();
|
|
||||||
if (a != null)
|
|
||||||
a
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
if (b != null)
|
|
||||||
b
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
|
|
||||||
return new ArrayList<>(result.values());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,132 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
|
||||||
|
|
||||||
public class DLIUnknown extends Oaf implements Serializable {
|
|
||||||
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private List<StructuredProperty> pid;
|
|
||||||
|
|
||||||
private String dateofcollection;
|
|
||||||
|
|
||||||
private String dateoftransformation;
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> dlicollectedfrom;
|
|
||||||
|
|
||||||
private String completionStatus = "incomplete";
|
|
||||||
|
|
||||||
public String getCompletionStatus() {
|
|
||||||
return completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompletionStatus(String completionStatus) {
|
|
||||||
this.completionStatus = completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ProvenaceInfo> getDlicollectedfrom() {
|
|
||||||
return dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDlicollectedfrom(List<ProvenaceInfo> dlicollectedfrom) {
|
|
||||||
this.dlicollectedfrom = dlicollectedfrom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<StructuredProperty> getPid() {
|
|
||||||
return pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPid(List<StructuredProperty> pid) {
|
|
||||||
this.pid = pid;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateofcollection() {
|
|
||||||
return dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateofcollection(String dateofcollection) {
|
|
||||||
this.dateofcollection = dateofcollection;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDateoftransformation() {
|
|
||||||
return dateoftransformation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDateoftransformation(String dateoftransformation) {
|
|
||||||
this.dateoftransformation = dateoftransformation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mergeFrom(DLIUnknown p) {
|
|
||||||
if ("complete".equalsIgnoreCase(p.completionStatus))
|
|
||||||
completionStatus = "complete";
|
|
||||||
dlicollectedfrom = mergeProvenance(dlicollectedfrom, p.getDlicollectedfrom());
|
|
||||||
if (StringUtils.isEmpty(id) && StringUtils.isNoneEmpty(p.getId()))
|
|
||||||
id = p.getId();
|
|
||||||
if (StringUtils.isEmpty(dateofcollection) && StringUtils.isNoneEmpty(p.getDateofcollection()))
|
|
||||||
dateofcollection = p.getDateofcollection();
|
|
||||||
|
|
||||||
if (StringUtils.isEmpty(dateoftransformation) && StringUtils.isNoneEmpty(p.getDateoftransformation()))
|
|
||||||
dateofcollection = p.getDateoftransformation();
|
|
||||||
pid = mergeLists(pid, p.getPid());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected <T> List<T> mergeLists(final List<T>... lists) {
|
|
||||||
|
|
||||||
return Arrays
|
|
||||||
.stream(lists)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.flatMap(List::stream)
|
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.distinct()
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<ProvenaceInfo> mergeProvenance(
|
|
||||||
final List<ProvenaceInfo> a, final List<ProvenaceInfo> b) {
|
|
||||||
Map<String, ProvenaceInfo> result = new HashMap<>();
|
|
||||||
if (a != null)
|
|
||||||
a
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
if (b != null)
|
|
||||||
b
|
|
||||||
.forEach(
|
|
||||||
p -> {
|
|
||||||
if (p != null && StringUtils.isNotBlank(p.getId()) && result.containsKey(p.getId())) {
|
|
||||||
if ("incomplete".equalsIgnoreCase(result.get(p.getId()).getCompletionStatus())
|
|
||||||
&& StringUtils.isNotBlank(p.getCompletionStatus())) {
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (p != null && p.getId() != null && !result.containsKey(p.getId()))
|
|
||||||
result.put(p.getId(), p);
|
|
||||||
});
|
|
||||||
|
|
||||||
return new ArrayList<>(result.values());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,90 +0,0 @@
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.{DataInfo, Field, KeyValue, Qualifier, StructuredProperty}
|
|
||||||
|
|
||||||
object OafUtils {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def generateKeyValue(key: String, value: String): KeyValue = {
|
|
||||||
val kv: KeyValue = new KeyValue()
|
|
||||||
kv.setKey(key)
|
|
||||||
kv.setValue(value)
|
|
||||||
kv.setDataInfo(generateDataInfo("0.9"))
|
|
||||||
kv
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def generateDataInfo(trust: String = "0.9", invisibile: Boolean = false): DataInfo = {
|
|
||||||
val di = new DataInfo
|
|
||||||
di.setDeletedbyinference(false)
|
|
||||||
di.setInferred(false)
|
|
||||||
di.setInvisible(false)
|
|
||||||
di.setTrust(trust)
|
|
||||||
di.setProvenanceaction(createQualifier("sysimport:actionset", "dnet:provenanceActions"))
|
|
||||||
di
|
|
||||||
}
|
|
||||||
|
|
||||||
def createQualifier(cls: String, sch: String): Qualifier = {
|
|
||||||
createQualifier(cls, cls, sch, sch)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def createQualifier(classId: String, className: String, schemeId: String, schemeName: String): Qualifier = {
|
|
||||||
val q: Qualifier = new Qualifier
|
|
||||||
q.setClassid(classId)
|
|
||||||
q.setClassname(className)
|
|
||||||
q.setSchemeid(schemeId)
|
|
||||||
q.setSchemename(schemeName)
|
|
||||||
q
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def asField[T](value: T): Field[T] = {
|
|
||||||
val tmp = new Field[T]
|
|
||||||
tmp.setValue(value)
|
|
||||||
tmp
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
def createSP(value: String, classId: String,className:String, schemeId: String, schemeName:String): StructuredProperty = {
|
|
||||||
val sp = new StructuredProperty
|
|
||||||
sp.setQualifier(createQualifier(classId,className, schemeId, schemeName))
|
|
||||||
sp.setValue(value)
|
|
||||||
sp
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createSP(value: String, classId: String,className:String, schemeId: String, schemeName:String, dataInfo: DataInfo): StructuredProperty = {
|
|
||||||
val sp = new StructuredProperty
|
|
||||||
sp.setQualifier(createQualifier(classId,className, schemeId, schemeName))
|
|
||||||
sp.setValue(value)
|
|
||||||
sp.setDataInfo(dataInfo)
|
|
||||||
sp
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
def createSP(value: String, classId: String, schemeId: String): StructuredProperty = {
|
|
||||||
val sp = new StructuredProperty
|
|
||||||
sp.setQualifier(createQualifier(classId, schemeId))
|
|
||||||
sp.setValue(value)
|
|
||||||
sp
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def createSP(value: String, classId: String, schemeId: String, dataInfo: DataInfo): StructuredProperty = {
|
|
||||||
val sp = new StructuredProperty
|
|
||||||
sp.setQualifier(createQualifier(classId, schemeId))
|
|
||||||
sp.setValue(value)
|
|
||||||
sp.setDataInfo(dataInfo)
|
|
||||||
sp
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class ProvenaceInfo implements Serializable {
|
|
||||||
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String completionStatus;
|
|
||||||
|
|
||||||
private String collectionMode = "collected";
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCompletionStatus() {
|
|
||||||
return completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCompletionStatus(String completionStatus) {
|
|
||||||
this.completionStatus = completionStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCollectionMode() {
|
|
||||||
return collectionMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCollectionMode(String collectionMode) {
|
|
||||||
this.collectionMode = collectionMode;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.action;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Relation;
|
|
||||||
|
|
||||||
/** @author claudio.atzori */
|
|
||||||
public class AtomicActionTest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void serializationTest() throws IOException {
|
|
||||||
|
|
||||||
Relation rel = new Relation();
|
|
||||||
rel.setSource("1");
|
|
||||||
rel.setTarget("2");
|
|
||||||
rel.setRelType("resultResult");
|
|
||||||
rel.setSubRelType("dedup");
|
|
||||||
rel.setRelClass("merges");
|
|
||||||
|
|
||||||
AtomicAction aa1 = new AtomicAction(Relation.class, rel);
|
|
||||||
|
|
||||||
final ObjectMapper mapper = new ObjectMapper();
|
|
||||||
String json = mapper.writeValueAsString(aa1);
|
|
||||||
|
|
||||||
assertTrue(StringUtils.isNotBlank(json));
|
|
||||||
|
|
||||||
AtomicAction aa2 = mapper.readValue(json, AtomicAction.class);
|
|
||||||
|
|
||||||
assertEquals(aa1.getClazz(), aa2.getClazz());
|
|
||||||
assertEquals(aa1.getPayload(), aa2.getPayload());
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.common;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Nested;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.OafEntity;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Relation;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Result;
|
|
||||||
|
|
||||||
public class ModelSupportTest {
|
|
||||||
|
|
||||||
@Nested
|
|
||||||
class IsSubClass {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void shouldReturnFalseWhenSubClassDoesNotExtendSuperClass() {
|
|
||||||
// when
|
|
||||||
Boolean result = ModelSupport.isSubClass(Relation.class, OafEntity.class);
|
|
||||||
|
|
||||||
// then
|
|
||||||
assertFalse(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void shouldReturnTrueWhenSubClassExtendsSuperClass() {
|
|
||||||
// when
|
|
||||||
Boolean result = ModelSupport.isSubClass(Result.class, OafEntity.class);
|
|
||||||
|
|
||||||
// then
|
|
||||||
assertTrue(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
|
|
||||||
public class MeasureTest {
|
|
||||||
|
|
||||||
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
|
|
||||||
.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testMeasureSerialization() throws IOException {
|
|
||||||
|
|
||||||
Measure popularity = new Measure();
|
|
||||||
popularity.setId("popularity");
|
|
||||||
popularity
|
|
||||||
.setUnit(
|
|
||||||
Lists
|
|
||||||
.newArrayList(
|
|
||||||
unit("score", "0.5")));
|
|
||||||
|
|
||||||
Measure influence = new Measure();
|
|
||||||
influence.setId("influence");
|
|
||||||
influence
|
|
||||||
.setUnit(
|
|
||||||
Lists
|
|
||||||
.newArrayList(
|
|
||||||
unit("score", "0.3")));
|
|
||||||
|
|
||||||
List<Measure> m = Lists.newArrayList(popularity, influence);
|
|
||||||
|
|
||||||
String s = OBJECT_MAPPER.writeValueAsString(m);
|
|
||||||
System.out.println(s);
|
|
||||||
|
|
||||||
List<Measure> mm = OBJECT_MAPPER.readValue(s, new TypeReference<List<Measure>>() {
|
|
||||||
});
|
|
||||||
|
|
||||||
Assertions.assertNotNull(mm);
|
|
||||||
}
|
|
||||||
|
|
||||||
private KeyValue unit(String key, String value) {
|
|
||||||
KeyValue unit = new KeyValue();
|
|
||||||
unit.setKey(key);
|
|
||||||
unit.setValue(value);
|
|
||||||
return unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,138 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.oaf;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
public class MergeTest {
|
|
||||||
|
|
||||||
OafEntity oaf;
|
|
||||||
|
|
||||||
@BeforeEach
|
|
||||||
public void setUp() {
|
|
||||||
oaf = new Publication();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void mergeListsTest() {
|
|
||||||
|
|
||||||
// string list merge test
|
|
||||||
List<String> a = Arrays.asList("a", "b", "c", "e");
|
|
||||||
List<String> b = Arrays.asList("a", "b", "c", "d");
|
|
||||||
List<String> c = null;
|
|
||||||
|
|
||||||
System.out.println("merge result 1 = " + oaf.mergeLists(a, b));
|
|
||||||
|
|
||||||
System.out.println("merge result 2 = " + oaf.mergeLists(a, c));
|
|
||||||
|
|
||||||
System.out.println("merge result 3 = " + oaf.mergeLists(c, c));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void mergePublicationCollectedFromTest() {
|
|
||||||
|
|
||||||
Publication a = new Publication();
|
|
||||||
Publication b = new Publication();
|
|
||||||
|
|
||||||
a.setCollectedfrom(Arrays.asList(setKV("a", "open"), setKV("b", "closed")));
|
|
||||||
b.setCollectedfrom(Arrays.asList(setKV("A", "open"), setKV("b", "Open")));
|
|
||||||
|
|
||||||
a.mergeFrom(b);
|
|
||||||
|
|
||||||
assertNotNull(a.getCollectedfrom());
|
|
||||||
assertEquals(3, a.getCollectedfrom().size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void mergePublicationSubjectTest() {
|
|
||||||
|
|
||||||
Publication a = new Publication();
|
|
||||||
Publication b = new Publication();
|
|
||||||
|
|
||||||
a.setSubject(Arrays.asList(setSP("a", "open", "classe"), setSP("b", "open", "classe")));
|
|
||||||
b.setSubject(Arrays.asList(setSP("A", "open", "classe"), setSP("c", "open", "classe")));
|
|
||||||
|
|
||||||
a.mergeFrom(b);
|
|
||||||
|
|
||||||
assertNotNull(a.getSubject());
|
|
||||||
assertEquals(3, a.getSubject().size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void mergeRelationTest() {
|
|
||||||
|
|
||||||
Relation a = createRel(null, null);
|
|
||||||
Relation b = createRel(null, null);
|
|
||||||
a.mergeFrom(b);
|
|
||||||
assertEquals(a, b);
|
|
||||||
|
|
||||||
a = createRel(true, null);
|
|
||||||
b = createRel(null, null);
|
|
||||||
a.mergeFrom(b);
|
|
||||||
assertEquals(true, a.getValidated());
|
|
||||||
|
|
||||||
a = createRel(true, null);
|
|
||||||
b = createRel(false, null);
|
|
||||||
a.mergeFrom(b);
|
|
||||||
assertEquals(true, a.getValidated());
|
|
||||||
|
|
||||||
a = createRel(true, null);
|
|
||||||
b = createRel(true, "2016-04-05T12:41:19.202Z");
|
|
||||||
a.mergeFrom(b);
|
|
||||||
assertEquals("2016-04-05T12:41:19.202Z", a.getValidationDate());
|
|
||||||
|
|
||||||
a = createRel(true, "2016-05-07T12:41:19.202Z");
|
|
||||||
b = createRel(true, "2016-04-05T12:41:19.202Z");
|
|
||||||
a.mergeFrom(b);
|
|
||||||
assertEquals("2016-04-05T12:41:19.202Z", a.getValidationDate());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void mergeRelationTestParseException() {
|
|
||||||
assertThrows(IllegalArgumentException.class, () -> {
|
|
||||||
Relation a = createRel(true, "2016-04-05");
|
|
||||||
Relation b = createRel(true, "2016-04-05");
|
|
||||||
a.mergeFrom(b);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private Relation createRel(Boolean validated, String validationDate) {
|
|
||||||
Relation rel = new Relation();
|
|
||||||
rel.setSource("1");
|
|
||||||
rel.setTarget("2");
|
|
||||||
rel.setRelType("reltype");
|
|
||||||
rel.setSubRelType("subreltype");
|
|
||||||
rel.setRelClass("relclass");
|
|
||||||
rel.setValidated(validated);
|
|
||||||
rel.setValidationDate(validationDate);
|
|
||||||
return rel;
|
|
||||||
}
|
|
||||||
|
|
||||||
private KeyValue setKV(final String key, final String value) {
|
|
||||||
|
|
||||||
KeyValue k = new KeyValue();
|
|
||||||
|
|
||||||
k.setKey(key);
|
|
||||||
k.setValue(value);
|
|
||||||
|
|
||||||
return k;
|
|
||||||
}
|
|
||||||
|
|
||||||
private StructuredProperty setSP(
|
|
||||||
final String value, final String schema, final String classname) {
|
|
||||||
StructuredProperty s = new StructuredProperty();
|
|
||||||
s.setValue(value);
|
|
||||||
Qualifier q = new Qualifier();
|
|
||||||
q.setClassname(classname);
|
|
||||||
q.setClassid(classname);
|
|
||||||
q.setSchemename(schema);
|
|
||||||
q.setSchemeid(schema);
|
|
||||||
s.setQualifier(q);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
|
|
||||||
package eu.dnetlib.dhp.schema.scholexplorer;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
|
||||||
|
|
||||||
public class DLItest {
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testMergePublication() throws JsonProcessingException {
|
|
||||||
DLIPublication a1 = new DLIPublication();
|
|
||||||
a1.setPid(Arrays.asList(createSP("123456", "pdb", "dnet:pid_types")));
|
|
||||||
a1.setTitle(Collections.singletonList(createSP("Un Titolo", "title", "dnetTitle")));
|
|
||||||
a1.setDlicollectedfrom(Arrays.asList(createCollectedFrom("znd", "Zenodo", "complete")));
|
|
||||||
a1.setCompletionStatus("complete");
|
|
||||||
|
|
||||||
DLIPublication a = new DLIPublication();
|
|
||||||
a
|
|
||||||
.setPid(
|
|
||||||
Arrays
|
|
||||||
.asList(
|
|
||||||
createSP("10.11", "doi", "dnet:pid_types"),
|
|
||||||
createSP("123456", "pdb", "dnet:pid_types")));
|
|
||||||
a.setTitle(Collections.singletonList(createSP("A Title", "title", "dnetTitle")));
|
|
||||||
a
|
|
||||||
.setDlicollectedfrom(
|
|
||||||
Arrays
|
|
||||||
.asList(
|
|
||||||
createCollectedFrom("dct", "datacite", "complete"),
|
|
||||||
createCollectedFrom("dct", "datacite", "incomplete")));
|
|
||||||
a.setCompletionStatus("incomplete");
|
|
||||||
|
|
||||||
a.mergeFrom(a1);
|
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
|
||||||
System.out.println(mapper.writeValueAsString(a));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testDeserialization() throws IOException {
|
|
||||||
|
|
||||||
final String json = "{\"dataInfo\":{\"invisible\":false,\"inferred\":null,\"deletedbyinference\":false,\"trust\":\"0.9\",\"inferenceprovenance\":null,\"provenanceaction\":null},\"lastupdatetimestamp\":null,\"id\":\"60|bd9352547098929a394655ad1a44a479\",\"originalId\":[\"bd9352547098929a394655ad1a44a479\"],\"collectedfrom\":[{\"key\":\"dli_________::datacite\",\"value\":\"Datasets in Datacite\",\"dataInfo\":null,\"blank\":false}],\"pid\":[{\"value\":\"10.7925/DRS1.DUCHAS_5078760\",\"qualifier\":{\"classid\":\"doi\",\"classname\":\"doi\",\"schemeid\":\"dnet:pid_types\",\"schemename\":\"dnet:pid_types\",\"blank\":false},\"dataInfo\":null}],\"dateofcollection\":\"2020-01-09T08:29:31.885Z\",\"dateoftransformation\":null,\"extraInfo\":null,\"oaiprovenance\":null,\"author\":[{\"fullname\":\"Cathail, S. Ó\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"Donnell, Breda Mc\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"Ireland. Department of Arts, Culture, and the Gaeltacht\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"University College Dublin\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"National Folklore Foundation\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"Cathail, S. Ó\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null},{\"fullname\":\"Donnell, Breda Mc\",\"name\":null,\"surname\":null,\"rank\":null,\"pid\":null,\"affiliation\":null}],\"resulttype\":null,\"language\":null,\"country\":null,\"subject\":[{\"value\":\"Recreation\",\"qualifier\":{\"classid\":\"dnet:subject\",\"classname\":\"dnet:subject\",\"schemeid\":\"unknown\",\"schemename\":\"unknown\",\"blank\":false},\"dataInfo\":null},{\"value\":\"Entertainments and recreational activities\",\"qualifier\":{\"classid\":\"dnet:subject\",\"classname\":\"dnet:subject\",\"schemeid\":\"unknown\",\"schemename\":\"unknown\",\"blank\":false},\"dataInfo\":null},{\"value\":\"Siamsaíocht agus caitheamh aimsire\",\"qualifier\":{\"classid\":\"dnet:subject\",\"classname\":\"dnet:subject\",\"schemeid\":\"unknown\",\"schemename\":\"unknown\",\"blank\":false},\"dataInfo\":null}],\"title\":[{\"value\":\"Games We Play\",\"qualifier\":null,\"dataInfo\":null}],\"relevantdate\":[{\"value\":\"1938-09-28\",\"qualifier\":{\"classid\":\"date\",\"classname\":\"date\",\"schemeid\":\"dnet::date\",\"schemename\":\"dnet::date\",\"blank\":false},\"dataInfo\":null}],\"description\":[{\"value\":\"Story collected by Breda Mc Donnell, a student at Tenure school (Tinure, Co. Louth) (no informant identified).\",\"dataInfo\":null}],\"dateofacceptance\":null,\"publisher\":{\"value\":\"University College Dublin\",\"dataInfo\":null},\"embargoenddate\":null,\"source\":null,\"fulltext\":null,\"format\":null,\"contributor\":null,\"resourcetype\":null,\"coverage\":null,\"refereed\":null,\"context\":null,\"processingchargeamount\":null,\"processingchargecurrency\":null,\"externalReference\":null,\"instance\":[],\"storagedate\":null,\"device\":null,\"size\":null,\"version\":null,\"lastmetadataupdate\":null,\"metadataversionnumber\":null,\"geolocation\":null,\"dlicollectedfrom\":[{\"id\":\"dli_________::datacite\",\"name\":\"Datasets in Datacite\",\"completionStatus\":\"complete\",\"collectionMode\":\"resolved\"}],\"completionStatus\":\"complete\"}";
|
|
||||||
|
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
|
||||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
DLIDataset dliDataset = mapper.readValue(json, DLIDataset.class);
|
|
||||||
mapper.enable(SerializationFeature.INDENT_OUTPUT);
|
|
||||||
System.out.println(mapper.writeValueAsString(dliDataset));
|
|
||||||
}
|
|
||||||
|
|
||||||
private ProvenaceInfo createCollectedFrom(
|
|
||||||
final String id, final String name, final String completionStatus) {
|
|
||||||
ProvenaceInfo p = new ProvenaceInfo();
|
|
||||||
p.setId(id);
|
|
||||||
p.setName(name);
|
|
||||||
p.setCompletionStatus(completionStatus);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
private StructuredProperty createSP(
|
|
||||||
final String value, final String className, final String schemeName) {
|
|
||||||
StructuredProperty p = new StructuredProperty();
|
|
||||||
p.setValue(value);
|
|
||||||
Qualifier schema = new Qualifier();
|
|
||||||
schema.setClassname(className);
|
|
||||||
schema.setClassid(className);
|
|
||||||
schema.setSchemename(schemeName);
|
|
||||||
schema.setSchemeid(schemeName);
|
|
||||||
p.setQualifier(schema);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -59,7 +59,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.dnetlib.dhp</groupId>
|
<groupId>eu.dnetlib.dhp</groupId>
|
||||||
<artifactId>dhp-schemas</artifactId>
|
<artifactId>dhp-schemas</artifactId>
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -3,20 +3,23 @@ package eu.dnetlib.dhp.actionmanager;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.NoSuchElementException;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.tuple.Triple;
|
||||||
import org.dom4j.Document;
|
import org.dom4j.Document;
|
||||||
|
import org.dom4j.DocumentException;
|
||||||
import org.dom4j.Element;
|
import org.dom4j.Element;
|
||||||
import org.dom4j.io.SAXReader;
|
import org.dom4j.io.SAXReader;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.base.Splitter;
|
import com.google.common.base.Splitter;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
import eu.dnetlib.actionmanager.rmi.ActionManagerException;
|
import eu.dnetlib.actionmanager.rmi.ActionManagerException;
|
||||||
import eu.dnetlib.actionmanager.set.ActionManagerSet;
|
import eu.dnetlib.actionmanager.set.ActionManagerSet;
|
||||||
|
@ -25,6 +28,7 @@ import eu.dnetlib.dhp.actionmanager.partition.PartitionActionSetsByPayloadTypeJo
|
||||||
import eu.dnetlib.dhp.utils.ISLookupClientFactory;
|
import eu.dnetlib.dhp.utils.ISLookupClientFactory;
|
||||||
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
|
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
|
||||||
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
|
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
|
||||||
|
import scala.Tuple2;
|
||||||
|
|
||||||
public class ISClient implements Serializable {
|
public class ISClient implements Serializable {
|
||||||
|
|
||||||
|
@ -40,80 +44,52 @@ public class ISClient implements Serializable {
|
||||||
|
|
||||||
public List<String> getLatestRawsetPaths(String setIds) {
|
public List<String> getLatestRawsetPaths(String setIds) {
|
||||||
|
|
||||||
List<String> ids = Lists
|
final Set<String> ids = Sets
|
||||||
.newArrayList(
|
.newHashSet(
|
||||||
Splitter
|
Splitter
|
||||||
.on(INPUT_ACTION_SET_ID_SEPARATOR)
|
.on(INPUT_ACTION_SET_ID_SEPARATOR)
|
||||||
.omitEmptyStrings()
|
.omitEmptyStrings()
|
||||||
.trimResults()
|
.trimResults()
|
||||||
.split(setIds));
|
.split(setIds));
|
||||||
|
|
||||||
return ids
|
|
||||||
.stream()
|
|
||||||
.map(id -> getSet(isLookup, id))
|
|
||||||
.map(as -> as.getPathToLatest())
|
|
||||||
.collect(Collectors.toCollection(ArrayList::new));
|
|
||||||
}
|
|
||||||
|
|
||||||
private ActionManagerSet getSet(ISLookUpService isLookup, final String setId) {
|
|
||||||
|
|
||||||
final String q = "for $x in collection('/db/DRIVER/ActionManagerSetDSResources/ActionManagerSetDSResourceType') "
|
|
||||||
+ "where $x//SET/@id = '"
|
|
||||||
+ setId
|
|
||||||
+ "' return $x";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final String basePath = getBasePathHDFS(isLookup);
|
final String basePath = getBasePathHDFS(isLookup);
|
||||||
final String setProfile = isLookup.getResourceProfileByQuery(q);
|
|
||||||
return getActionManagerSet(basePath, setProfile);
|
// <SET id="..." directory="..." latest="xxx"/>
|
||||||
} catch (ISLookUpException | ActionManagerException e) {
|
final String xquery = "for $x in collection('/db/DRIVER/ActionManagerSetDSResources/ActionManagerSetDSResourceType') "
|
||||||
throw new RuntimeException("Error accessing Sets, using query: " + q);
|
+
|
||||||
|
"return <SET id='{$x//SET/@id/string()}' directory='{$x//SET/@directory/string()}' latest='{$x//LATEST/@id/string()}'/>";
|
||||||
|
return Optional
|
||||||
|
.ofNullable(isLookup.quickSearchProfile(xquery))
|
||||||
|
.map(
|
||||||
|
sets -> sets
|
||||||
|
.stream()
|
||||||
|
.map(set -> parseSetInfo(set))
|
||||||
|
.filter(t -> ids.contains(t.getLeft()))
|
||||||
|
.map(t -> buildDirectory(basePath, t))
|
||||||
|
.collect(Collectors.toList()))
|
||||||
|
.orElseThrow(() -> new IllegalStateException("empty set list"));
|
||||||
|
} catch (ActionManagerException | ISLookUpException e) {
|
||||||
|
throw new IllegalStateException("unable to query ActionSets info from the IS");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ActionManagerSet getActionManagerSet(final String basePath, final String profile)
|
private Triple<String, String, String> parseSetInfo(String set) {
|
||||||
throws ActionManagerException {
|
|
||||||
final SAXReader reader = new SAXReader();
|
|
||||||
final ActionManagerSet set = new ActionManagerSet();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final Document doc = reader.read(new StringReader(profile));
|
Document doc = new SAXReader().read(new StringReader(set));
|
||||||
|
return Triple
|
||||||
set.setId(doc.valueOf("//SET/@id").trim());
|
.of(
|
||||||
set.setName(doc.valueOf("//SET").trim());
|
doc.valueOf("//SET/@id"),
|
||||||
set.setImpact(ImpactTypes.valueOf(doc.valueOf("//IMPACT").trim()));
|
doc.valueOf("//SET/@directory"),
|
||||||
set
|
doc.valueOf("//SET/@latest"));
|
||||||
.setLatest(
|
} catch (DocumentException e) {
|
||||||
doc.valueOf("//RAW_SETS/LATEST/@id"),
|
throw new IllegalStateException(e);
|
||||||
doc.valueOf("//RAW_SETS/LATEST/@creationDate"),
|
|
||||||
doc.valueOf("//RAW_SETS/LATEST/@lastUpdate"));
|
|
||||||
set.setDirectory(doc.valueOf("//SET/@directory"));
|
|
||||||
final List expiredNodes = doc.selectNodes("//RAW_SETS/EXPIRED");
|
|
||||||
if (expiredNodes != null) {
|
|
||||||
for (int i = 0; i < expiredNodes.size(); i++) {
|
|
||||||
Element ex = (Element) expiredNodes.get(i);
|
|
||||||
set
|
|
||||||
.addExpired(
|
|
||||||
ex.attributeValue("id"),
|
|
||||||
ex.attributeValue("creationDate"),
|
|
||||||
ex.attributeValue("lastUpdate"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append(basePath);
|
|
||||||
sb.append("/");
|
|
||||||
sb.append(doc.valueOf("//SET/@directory"));
|
|
||||||
sb.append("/");
|
|
||||||
sb.append(doc.valueOf("//RAW_SETS/LATEST/@id"));
|
|
||||||
set.setPathToLatest(sb.toString());
|
|
||||||
|
|
||||||
return set;
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new ActionManagerException("Error creating set from profile: " + profile, e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String buildDirectory(String basePath, Triple<String, String, String> t) {
|
||||||
|
return Joiner.on("/").join(basePath, t.getMiddle(), t.getRight());
|
||||||
|
}
|
||||||
|
|
||||||
private String getBasePathHDFS(ISLookUpService isLookup) throws ActionManagerException {
|
private String getBasePathHDFS(ISLookUpService isLookup) throws ActionManagerException {
|
||||||
return queryServiceProperty(isLookup, "basePath");
|
return queryServiceProperty(isLookup, "basePath");
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>eu.dnetlib.dhp</groupId>
|
<groupId>eu.dnetlib.dhp</groupId>
|
||||||
<artifactId>dhp-schemas</artifactId>
|
<artifactId>dhp-schemas</artifactId>
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,215 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.actionmanager.ror;
|
||||||
|
|
||||||
|
import static eu.dnetlib.dhp.common.SparkSessionSupport.runWithSparkSession;
|
||||||
|
import static eu.dnetlib.dhp.schema.common.ModelConstants.ENTITYREGISTRY_PROVENANCE_ACTION;
|
||||||
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.dataInfo;
|
||||||
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.field;
|
||||||
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.listKeyValues;
|
||||||
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.qualifier;
|
||||||
|
import static eu.dnetlib.dhp.schema.oaf.OafMapperUtils.structuredProperty;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
import org.apache.hadoop.fs.Path;
|
||||||
|
import org.apache.hadoop.io.Text;
|
||||||
|
import org.apache.hadoop.mapred.SequenceFileOutputFormat;
|
||||||
|
import org.apache.spark.SparkConf;
|
||||||
|
import org.apache.spark.api.java.function.MapFunction;
|
||||||
|
import org.apache.spark.sql.Dataset;
|
||||||
|
import org.apache.spark.sql.Encoders;
|
||||||
|
import org.apache.spark.sql.SparkSession;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.actionmanager.project.SparkAtomicActionJob;
|
||||||
|
import eu.dnetlib.dhp.actionmanager.ror.model.ExternalIdType;
|
||||||
|
import eu.dnetlib.dhp.actionmanager.ror.model.RorOrganization;
|
||||||
|
import eu.dnetlib.dhp.application.ArgumentApplicationParser;
|
||||||
|
import eu.dnetlib.dhp.common.HdfsSupport;
|
||||||
|
import eu.dnetlib.dhp.schema.action.AtomicAction;
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelConstants;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.KeyValue;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Organization;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
||||||
|
import eu.dnetlib.dhp.utils.DHPUtils;
|
||||||
|
import scala.Tuple2;
|
||||||
|
|
||||||
|
public class GenerateRorActionSetJob {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(GenerateRorActionSetJob.class);
|
||||||
|
|
||||||
|
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||||
|
|
||||||
|
private static final String ROR_NS_PREFIX = "ror_________";
|
||||||
|
|
||||||
|
private static final List<KeyValue> ROR_COLLECTED_FROM = listKeyValues(
|
||||||
|
"10|openaire____::993a7ae7a863813cf95028b50708e222", "ROR");
|
||||||
|
|
||||||
|
private static final DataInfo ROR_DATA_INFO = dataInfo(
|
||||||
|
false, "", false, false, ENTITYREGISTRY_PROVENANCE_ACTION, "0.92");
|
||||||
|
|
||||||
|
private static final Qualifier ROR_PID_TYPE = qualifier(
|
||||||
|
"ROR", "ROR", ModelConstants.DNET_PID_TYPES, ModelConstants.DNET_PID_TYPES);
|
||||||
|
|
||||||
|
public static void main(final String[] args) throws Exception {
|
||||||
|
|
||||||
|
final String jsonConfiguration = IOUtils
|
||||||
|
.toString(
|
||||||
|
SparkAtomicActionJob.class
|
||||||
|
.getResourceAsStream("/eu/dnetlib/dhp/actionmanager/ror/action_set_parameters.json"));
|
||||||
|
|
||||||
|
final ArgumentApplicationParser parser = new ArgumentApplicationParser(jsonConfiguration);
|
||||||
|
|
||||||
|
parser.parseArgument(args);
|
||||||
|
|
||||||
|
final Boolean isSparkSessionManaged = Optional
|
||||||
|
.ofNullable(parser.get("isSparkSessionManaged"))
|
||||||
|
.map(Boolean::valueOf)
|
||||||
|
.orElse(Boolean.TRUE);
|
||||||
|
|
||||||
|
log.info("isSparkSessionManaged: {}", isSparkSessionManaged);
|
||||||
|
|
||||||
|
final String inputPath = parser.get("inputPath");
|
||||||
|
log.info("inputPath: {}", inputPath);
|
||||||
|
|
||||||
|
final String outputPath = parser.get("outputPath");
|
||||||
|
log.info("outputPath {}: ", outputPath);
|
||||||
|
|
||||||
|
final SparkConf conf = new SparkConf();
|
||||||
|
|
||||||
|
runWithSparkSession(conf, isSparkSessionManaged, spark -> {
|
||||||
|
removeOutputDir(spark, outputPath);
|
||||||
|
processRorOrganizations(spark, inputPath, outputPath);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void removeOutputDir(final SparkSession spark, final String path) {
|
||||||
|
HdfsSupport.remove(path, spark.sparkContext().hadoopConfiguration());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void processRorOrganizations(final SparkSession spark,
|
||||||
|
final String inputPath,
|
||||||
|
final String outputPath) throws Exception {
|
||||||
|
|
||||||
|
readInputPath(spark, inputPath)
|
||||||
|
.map(
|
||||||
|
(MapFunction<RorOrganization, Organization>) GenerateRorActionSetJob::convertRorOrg,
|
||||||
|
Encoders.bean(Organization.class))
|
||||||
|
.toJavaRDD()
|
||||||
|
.map(o -> new AtomicAction<>(Organization.class, o))
|
||||||
|
.mapToPair(
|
||||||
|
aa -> new Tuple2<>(new Text(aa.getClazz().getCanonicalName()),
|
||||||
|
new Text(OBJECT_MAPPER.writeValueAsString(aa))))
|
||||||
|
.saveAsHadoopFile(outputPath, Text.class, Text.class, SequenceFileOutputFormat.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static Organization convertRorOrg(final RorOrganization r) {
|
||||||
|
|
||||||
|
final Date now = new Date();
|
||||||
|
|
||||||
|
final Organization o = new Organization();
|
||||||
|
|
||||||
|
o.setId(String.format("20|%s::%s", ROR_NS_PREFIX, DHPUtils.md5(r.getId())));
|
||||||
|
o.setOriginalId(Arrays.asList(String.format("%s::%s", ROR_NS_PREFIX, r.getId())));
|
||||||
|
o.setCollectedfrom(ROR_COLLECTED_FROM);
|
||||||
|
o.setPid(pids(r));
|
||||||
|
o.setDateofcollection(now.toString());
|
||||||
|
o.setDateoftransformation(now.toString());
|
||||||
|
o.setExtraInfo(new ArrayList<>()); // Values not present in the file
|
||||||
|
o.setOaiprovenance(null); // Values not present in the file
|
||||||
|
o.setLegalshortname(field(r.getAcronyms().stream().findFirst().orElse(r.getName()), ROR_DATA_INFO));
|
||||||
|
o.setLegalname(field(r.getName(), ROR_DATA_INFO));
|
||||||
|
o.setAlternativeNames(alternativeNames(r));
|
||||||
|
o.setWebsiteurl(field(r.getLinks().stream().findFirst().orElse(null), ROR_DATA_INFO));
|
||||||
|
o.setLogourl(null);
|
||||||
|
o.setEclegalbody(null);
|
||||||
|
o.setEclegalperson(null);
|
||||||
|
o.setEcnonprofit(null);
|
||||||
|
o.setEcresearchorganization(null);
|
||||||
|
o.setEchighereducation(null);
|
||||||
|
o.setEcinternationalorganizationeurinterests(null);
|
||||||
|
o.setEcinternationalorganization(null);
|
||||||
|
o.setEcenterprise(null);
|
||||||
|
o.setEcsmevalidated(null);
|
||||||
|
o.setEcnutscode(null);
|
||||||
|
if (r.getCountry() != null) {
|
||||||
|
o
|
||||||
|
.setCountry(
|
||||||
|
qualifier(
|
||||||
|
r.getCountry().getCountryCode(), r
|
||||||
|
.getCountry()
|
||||||
|
.getCountryName(),
|
||||||
|
ModelConstants.DNET_COUNTRY_TYPE, ModelConstants.DNET_COUNTRY_TYPE));
|
||||||
|
} else {
|
||||||
|
o.setCountry(null);
|
||||||
|
}
|
||||||
|
o.setDataInfo(ROR_DATA_INFO);
|
||||||
|
o.setLastupdatetimestamp(now.getTime());
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<StructuredProperty> pids(final RorOrganization r) {
|
||||||
|
final List<StructuredProperty> pids = new ArrayList<>();
|
||||||
|
pids.add(structuredProperty(r.getId(), ROR_PID_TYPE, ROR_DATA_INFO));
|
||||||
|
|
||||||
|
for (final Map.Entry<String, ExternalIdType> e : r.getExternalIds().entrySet()) {
|
||||||
|
final String type = e.getKey();
|
||||||
|
final List<String> all = e.getValue().getAll();
|
||||||
|
if (all != null) {
|
||||||
|
final Qualifier qualifier = qualifier(
|
||||||
|
type, type, ModelConstants.DNET_PID_TYPES, ModelConstants.DNET_PID_TYPES);
|
||||||
|
for (final String pid : all) {
|
||||||
|
pids
|
||||||
|
.add(structuredProperty(pid, qualifier, ROR_DATA_INFO));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pids;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Field<String>> alternativeNames(final RorOrganization r) {
|
||||||
|
final Set<String> names = new LinkedHashSet<>();
|
||||||
|
names.addAll(r.getAliases());
|
||||||
|
names.addAll(r.getAcronyms());
|
||||||
|
r.getLabels().forEach(l -> names.add(l.getLabel()));
|
||||||
|
|
||||||
|
return names
|
||||||
|
.stream()
|
||||||
|
.filter(StringUtils::isNotBlank)
|
||||||
|
.map(s -> field(s, ROR_DATA_INFO))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Dataset<RorOrganization> readInputPath(
|
||||||
|
final SparkSession spark,
|
||||||
|
final String path) throws Exception {
|
||||||
|
|
||||||
|
try (final FileSystem fileSystem = FileSystem.get(new Configuration());
|
||||||
|
final InputStream is = fileSystem.open(new Path(path))) {
|
||||||
|
final RorOrganization[] arr = OBJECT_MAPPER.readValue(is, RorOrganization[].class);
|
||||||
|
return spark.createDataset(Arrays.asList(arr), Encoders.bean(RorOrganization.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,122 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.actionmanager.ror.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class Address implements Serializable {
|
||||||
|
|
||||||
|
@JsonProperty("lat")
|
||||||
|
private Float lat;
|
||||||
|
|
||||||
|
@JsonProperty("state_code")
|
||||||
|
private String stateCode;
|
||||||
|
|
||||||
|
@JsonProperty("country_geonames_id")
|
||||||
|
private Integer countryGeonamesId;
|
||||||
|
|
||||||
|
@JsonProperty("lng")
|
||||||
|
private Float lng;
|
||||||
|
|
||||||
|
@JsonProperty("state")
|
||||||
|
private String state;
|
||||||
|
|
||||||
|
@JsonProperty("city")
|
||||||
|
private String city;
|
||||||
|
|
||||||
|
@JsonProperty("geonames_city")
|
||||||
|
private GeonamesCity geonamesCity;
|
||||||
|
|
||||||
|
@JsonProperty("postcode")
|
||||||
|
private String postcode;
|
||||||
|
|
||||||
|
@JsonProperty("primary")
|
||||||
|
private Boolean primary;
|
||||||
|
|
||||||
|
@JsonProperty("line")
|
||||||
|
private String line;
|
||||||
|
|
||||||
|
private final static long serialVersionUID = 2444635485253443195L;
|
||||||
|
|
||||||
|
public Float getLat() {
|
||||||
|
return lat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLat(final Float lat) {
|
||||||
|
this.lat = lat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStateCode() {
|
||||||
|
return stateCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStateCode(final String stateCode) {
|
||||||
|
this.stateCode = stateCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCountryGeonamesId() {
|
||||||
|
return countryGeonamesId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryGeonamesId(final Integer countryGeonamesId) {
|
||||||
|
this.countryGeonamesId = countryGeonamesId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Float getLng() {
|
||||||
|
return lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLng(final Float lng) {
|
||||||
|
this.lng = lng;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(final String state) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCity() {
|
||||||
|
return city;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCity(final String city) {
|
||||||
|
this.city = city;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeonamesCity getGeonamesCity() {
|
||||||
|
return geonamesCity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGeonamesCity(final GeonamesCity geonamesCity) {
|
||||||
|
this.geonamesCity = geonamesCity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPostcode() {
|
||||||
|
return postcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPostcode(final String postcode) {
|
||||||
|
this.postcode = postcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getPrimary() {
|
||||||
|
return primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrimary(final Boolean primary) {
|
||||||
|
this.primary = primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLine() {
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLine(final String line) {
|
||||||
|
this.line = line;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
package eu.dnetlib.dhp.actionmanager.ror.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class Country implements Serializable {
|
||||||
|
|
||||||
|
@JsonProperty("country_code")
|
||||||
|
private String countryCode;
|
||||||
|
|
||||||
|
@JsonProperty("country_name")
|
||||||
|
private String countryName;
|
||||||
|
|
||||||
|
private final static long serialVersionUID = 4357848706229493627L;
|
||||||
|
|
||||||
|
public String getCountryCode() {
|
||||||
|
return countryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryCode(final String countryCode) {
|
||||||
|
this.countryCode = countryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountryName() {
|
||||||
|
return countryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountryName(final String countryName) {
|
||||||
|
this.countryName = countryName;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue