forked from D-Net/dnet-hadoop
fixed a problem with missing contexts
This commit is contained in:
parent
b164d96874
commit
072eae3803
|
@ -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(
|
||||||
|
|
|
@ -98,6 +98,8 @@ public class MappersTest {
|
||||||
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.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());
|
||||||
|
|
Loading…
Reference in New Issue