forked from D-Net/dnet-hadoop
Merge branch 'master' of code-repo.d4science.org:D-Net/dnet-hadoop
This commit is contained in:
commit
5414236644
|
@ -12,6 +12,7 @@ import static eu.dnetlib.dhp.oa.graph.raw.common.OafMapperUtils.structuredProper
|
||||||
|
|
||||||
import eu.dnetlib.dhp.oa.graph.raw.common.MigrationConstants;
|
import eu.dnetlib.dhp.oa.graph.raw.common.MigrationConstants;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Author;
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Context;
|
||||||
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
import eu.dnetlib.dhp.schema.oaf.Dataset;
|
||||||
import eu.dnetlib.dhp.schema.oaf.Field;
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
||||||
|
@ -237,11 +238,25 @@ public abstract class AbstractMdRecordToOafMapper {
|
||||||
r.setContributor(prepareContributors(doc, info));
|
r.setContributor(prepareContributors(doc, info));
|
||||||
r.setResourcetype(prepareResourceType(doc, info));
|
r.setResourcetype(prepareResourceType(doc, info));
|
||||||
r.setCoverage(prepareCoverages(doc, info));
|
r.setCoverage(prepareCoverages(doc, info));
|
||||||
r.setContext(new ArrayList<>()); // NOT PRESENT IN MDSTORES
|
r.setContext(prepareContexts(doc, info));
|
||||||
r.setExternalReference(new ArrayList<>()); // NOT PRESENT IN MDSTORES
|
r.setExternalReference(new ArrayList<>()); // NOT PRESENT IN MDSTORES
|
||||||
r.setInstance(prepareInstances(doc, info, collectedFrom, hostedBy));
|
r.setInstance(prepareInstances(doc, info, collectedFrom, hostedBy));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Context> prepareContexts(final Document doc, final DataInfo info) {
|
||||||
|
final List<Context> list = new ArrayList<>();
|
||||||
|
for (final Object o : doc.selectNodes("//oaf:concept")) {
|
||||||
|
final String cid = ((Node) o).valueOf("@id");
|
||||||
|
if (StringUtils.isNotBlank(cid)) {
|
||||||
|
final Context c = new Context();
|
||||||
|
c.setId(cid);
|
||||||
|
c.setDataInfo(Arrays.asList(info));
|
||||||
|
list.add(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
protected abstract Qualifier prepareResourceType(Document doc, DataInfo info);
|
protected abstract Qualifier prepareResourceType(Document doc, DataInfo info);
|
||||||
|
|
||||||
protected abstract List<Instance> prepareInstances(
|
protected abstract List<Instance> prepareInstances(
|
||||||
|
|
|
@ -1,8 +1,19 @@
|
||||||
package eu.dnetlib.dhp.oa.graph.raw;
|
package eu.dnetlib.dhp.oa.graph.raw;
|
||||||
|
|
||||||
import static eu.dnetlib.dhp.oa.graph.raw.common.OafMapperUtils.*;
|
import static eu.dnetlib.dhp.oa.graph.raw.common.OafMapperUtils.createOpenaireId;
|
||||||
|
import static eu.dnetlib.dhp.oa.graph.raw.common.OafMapperUtils.field;
|
||||||
|
import static eu.dnetlib.dhp.oa.graph.raw.common.OafMapperUtils.structuredProperty;
|
||||||
|
|
||||||
import eu.dnetlib.dhp.schema.oaf.*;
|
import eu.dnetlib.dhp.schema.oaf.Author;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.DataInfo;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Field;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.GeoLocation;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Instance;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.KeyValue;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Oaf;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Qualifier;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.Relation;
|
||||||
|
import eu.dnetlib.dhp.schema.oaf.StructuredProperty;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -62,33 +73,44 @@ public class OdfToOafMapper extends AbstractMdRecordToOafMapper {
|
||||||
final DataInfo info,
|
final DataInfo info,
|
||||||
final KeyValue collectedfrom,
|
final KeyValue collectedfrom,
|
||||||
final KeyValue hostedby) {
|
final KeyValue hostedby) {
|
||||||
final List<Instance> res = new ArrayList<>();
|
|
||||||
|
final Instance instance = new Instance();
|
||||||
|
instance.setUrl(new ArrayList<>());
|
||||||
|
instance.setInstancetype(
|
||||||
|
prepareQualifier(
|
||||||
|
doc,
|
||||||
|
"//dr:CobjCategory",
|
||||||
|
"dnet:publication_resource",
|
||||||
|
"dnet:publication_resource"));
|
||||||
|
instance.setCollectedfrom(collectedfrom);
|
||||||
|
instance.setHostedby(hostedby);
|
||||||
|
instance.setDateofacceptance(field(doc.valueOf("//oaf:dateAccepted"), info));
|
||||||
|
instance.setDistributionlocation(doc.valueOf("//oaf:distributionlocation"));
|
||||||
|
instance.setAccessright(
|
||||||
|
prepareQualifier(
|
||||||
|
doc, "//oaf:accessrights", "dnet:access_modes", "dnet:access_modes"));
|
||||||
|
instance.setLicense(field(doc.valueOf("//oaf:license"), info));
|
||||||
|
instance.setRefereed(field(doc.valueOf("//oaf:refereed"), info));
|
||||||
|
instance.setProcessingchargeamount(
|
||||||
|
field(doc.valueOf("//oaf:processingchargeamount"), info));
|
||||||
|
instance.setProcessingchargecurrency(
|
||||||
|
field(doc.valueOf("//oaf:processingchargeamount/@currency"), info));
|
||||||
|
|
||||||
for (final Object o :
|
for (final Object o :
|
||||||
doc.selectNodes("//datacite:alternateIdentifier[@alternateIdentifierType='URL']")) {
|
doc.selectNodes("//datacite:alternateIdentifier[@alternateIdentifierType='URL']")) {
|
||||||
final Instance instance = new Instance();
|
instance.getUrl().add(((Node) o).getText().trim());
|
||||||
instance.setUrl(Arrays.asList(((Node) o).getText().trim()));
|
|
||||||
instance.setInstancetype(
|
|
||||||
prepareQualifier(
|
|
||||||
doc,
|
|
||||||
"//dr:CobjCategory",
|
|
||||||
"dnet:publication_resource",
|
|
||||||
"dnet:publication_resource"));
|
|
||||||
instance.setCollectedfrom(collectedfrom);
|
|
||||||
instance.setHostedby(hostedby);
|
|
||||||
instance.setDateofacceptance(field(doc.valueOf("//oaf:dateAccepted"), info));
|
|
||||||
instance.setDistributionlocation(doc.valueOf("//oaf:distributionlocation"));
|
|
||||||
instance.setAccessright(
|
|
||||||
prepareQualifier(
|
|
||||||
doc, "//oaf:accessrights", "dnet:access_modes", "dnet:access_modes"));
|
|
||||||
instance.setLicense(field(doc.valueOf("//oaf:license"), info));
|
|
||||||
instance.setRefereed(field(doc.valueOf("//oaf:refereed"), info));
|
|
||||||
instance.setProcessingchargeamount(
|
|
||||||
field(doc.valueOf("//oaf:processingchargeamount"), info));
|
|
||||||
instance.setProcessingchargecurrency(
|
|
||||||
field(doc.valueOf("//oaf:processingchargeamount/@currency"), info));
|
|
||||||
res.add(instance);
|
|
||||||
}
|
}
|
||||||
return res;
|
for (final Object o : doc.selectNodes("//datacite:identifier[@identifierType='URL']")) {
|
||||||
|
instance.getUrl().add(((Node) o).getText().trim());
|
||||||
|
}
|
||||||
|
for (final Object o :
|
||||||
|
doc.selectNodes("//datacite:alternateIdentifier[@alternateIdentifierType='DOI']")) {
|
||||||
|
instance.getUrl().add("http://dx.doi.org/" + ((Node) o).getText().trim());
|
||||||
|
}
|
||||||
|
for (final Object o : doc.selectNodes("//datacite:identifier[@identifierType='DOI']")) {
|
||||||
|
instance.getUrl().add("http://dx.doi.org/" + ((Node) o).getText().trim());
|
||||||
|
}
|
||||||
|
return Arrays.asList(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -54,6 +54,7 @@ public class MappersTest {
|
||||||
assertTrue(p.getSubject().size() > 0);
|
assertTrue(p.getSubject().size() > 0);
|
||||||
assertTrue(StringUtils.isNotBlank(p.getJournal().getIssnOnline()));
|
assertTrue(StringUtils.isNotBlank(p.getJournal().getIssnOnline()));
|
||||||
assertTrue(StringUtils.isNotBlank(p.getJournal().getName()));
|
assertTrue(StringUtils.isNotBlank(p.getJournal().getName()));
|
||||||
|
assertTrue(p.getInstance().size() > 0);
|
||||||
|
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r1.getTarget());
|
assertValidId(r1.getTarget());
|
||||||
|
@ -96,6 +97,9 @@ public class MappersTest {
|
||||||
assertTrue(StringUtils.isNotBlank(d.getTitle().get(0).getValue()));
|
assertTrue(StringUtils.isNotBlank(d.getTitle().get(0).getValue()));
|
||||||
assertTrue(d.getAuthor().size() > 0);
|
assertTrue(d.getAuthor().size() > 0);
|
||||||
assertTrue(d.getSubject().size() > 0);
|
assertTrue(d.getSubject().size() > 0);
|
||||||
|
assertTrue(d.getInstance().size() > 0);
|
||||||
|
assertTrue(d.getContext().size() > 0);
|
||||||
|
assertTrue(d.getContext().get(0).getId().length() > 0);
|
||||||
|
|
||||||
assertValidId(r1.getSource());
|
assertValidId(r1.getSource());
|
||||||
assertValidId(r1.getTarget());
|
assertValidId(r1.getTarget());
|
||||||
|
@ -129,6 +133,7 @@ public class MappersTest {
|
||||||
assertTrue(StringUtils.isNotBlank(s.getTitle().get(0).getValue()));
|
assertTrue(StringUtils.isNotBlank(s.getTitle().get(0).getValue()));
|
||||||
assertTrue(s.getAuthor().size() > 0);
|
assertTrue(s.getAuthor().size() > 0);
|
||||||
assertTrue(s.getSubject().size() > 0);
|
assertTrue(s.getSubject().size() > 0);
|
||||||
|
assertTrue(s.getInstance().size() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertValidId(final String id) {
|
private void assertValidId(final String id) {
|
||||||
|
|
Loading…
Reference in New Issue