diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java index cd756f17838c9fefd3cd1f0b6da6531ee187dc0d..3a31a2f7a78bbd4e665b643ab0ef8fd62f8f24d6 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDC.java @@ -154,6 +154,7 @@ public class RecordDelivererDC extends RecordDelivererAbstract { */ private GetResponse furtherDCElements(String id) { + // TODO WHY adding .0 here?? if (!id.endsWith(".0")) { id = id.concat(".0"); } diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java index bfdd1c061a6b63e10368196fc37738cff5c65acf..a2cd671748d11373a6748a34d8dfb793582a673e 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java @@ -269,12 +269,21 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { if (this.textgrid) { Subject subject = new Subject(); - subject.setValue( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".value")); - subject.setSchemeURI( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.type")); - subject.setSubjectScheme( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.value")); + String value = + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".value"); + if (!value.isEmpty()) { + subject.setValue(value); + } + String scheme = + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.value"); + if (!scheme.isEmpty()) { + subject.setSubjectScheme(scheme); + } + String schemeURI = + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.type"); + if (schemeURI.isEmpty()) { + subject.setSchemeURI(schemeURI); + } subjects.getSubject().add(subject); } @@ -286,10 +295,11 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { List<String> sList = OaipmhUtilities.listFieldLoader(this.jsonObj, subjectField); for (String s : sList) { Subject subject = new Subject(); - subject.setValue(s); - // TODO Extract subject schema and schema URI somehow? - // subject.setSchemeURI(); - // subject.setSubjectScheme(); + if (!s.isEmpty()) { + subject.setValue(s); + } + // TODO Extract subject schema and schema URI somehow? Set accordingly like in TG part + // above. subjects.getSubject().add(subject); } }