From 06adbe1d2ca4bcac13262cbb8f1c913bb23c9c82 Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Thu, 5 Jan 2023 16:34:01 +0100 Subject: [PATCH] fix: refactor some strings --- .../middleware/RecordDelivererDatacite.java | 99 +++++++++++-------- 1 file changed, 58 insertions(+), 41 deletions(-) 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 a2cd6717..9c38f327 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDatacite.java @@ -61,6 +61,24 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { private static final String TG_PROJECT_CONTRIBUTOR_SCHEME = "textgrid"; private static final String TG_PROJECT_CONTRIBUTOR_SCHEME_URI = "https://textgridrep.org/project/"; + private static final String ERROR_NO_DATA_CAN_BE_RETRIEVED = + "No data could be retrieved from ElasticSearch for ID: "; + private static final String BYTES = "Bytes"; + private static final String DOT_VALUE = ".value"; + private static final String DOT_TYPE = ".type"; + private static final String DOT_ID = ".id"; + private static final String LICENSE_URI = ".licenseUri"; + private static final String EU_OPEN_ACCESS = "info:eu-repo/semantics/openAccess"; + private static final String ID_TYPE_HANDLE = "Handle"; + private static final String ID_TYPE_DOI = "DOI"; + private static final String ID_TYPE_OTHER = "Other"; + private static final String PND = "PND"; + private static final String GND = "GND"; + private static final String GND_SCHEME = "https://d-nb.info/gnd/"; + private static final String VIAF = "VIAF"; + private static final String VIAF_SCHEME = "https://viaf.org/viaf/"; + private static final String ORCID = "ORCID"; + private static final String ORCID_SCHEME = "https://orcid.org/"; // ** // STATICS @@ -123,8 +141,7 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { replacedID, this.fields, Strings.EMPTY_ARRAY).getSource()); if (this.jsonObj == null || this.jsonObj.isEmpty()) { - throw new IOException( - "No data could be retrieved from ElasticSearch for ID: " + idInElasticSearchIndex); + throw new IOException(ERROR_NO_DATA_CAN_BE_RETRIEVED + idInElasticSearchIndex); } // Set response header. @@ -247,7 +264,7 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { Sizes sizes = new Sizes(); String size = - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, this.oarSizeField) + " Bytes"; + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, this.oarSizeField) + " " + BYTES; sizes.getSize().add(size); return sizes; @@ -270,17 +287,17 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { if (this.textgrid) { Subject subject = new Subject(); String value = - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".value"); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + DOT_VALUE); if (!value.isEmpty()) { subject.setValue(value); } String scheme = - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.value"); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + DOT_ID + DOT_VALUE); if (!scheme.isEmpty()) { subject.setSubjectScheme(scheme); } String schemeURI = - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + ".id.type"); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, subjectField + DOT_ID + DOT_TYPE); if (schemeURI.isEmpty()) { subject.setSchemeURI(schemeURI); } @@ -396,7 +413,7 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { for (String geoLocationField : this.oarGeoLocationFields) { GeoLocation geoLocation = new GeoLocation(); geoLocation.setGeoLocationPlace( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, geoLocationField + ".value")); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, geoLocationField + DOT_VALUE)); geoLocations.getGeoLocation().add(geoLocation); } @@ -556,15 +573,15 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { if (this.textgrid) { Rights rights = new Rights(); rights.setRightsURI( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, rightsField + ".licenseUri")); - rights - .setValue(OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, rightsField + ".value")); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, rightsField + LICENSE_URI)); + rights.setValue( + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, rightsField + DOT_VALUE)); rightsResultList.getRights().add(rights); } // TODO Check open access right here! if (rightsResultList.getRights().get(0).getValue() != null) { Rights openAccesRight = new Rights(); - openAccesRight.setRightsURI("info:eu-repo/semantics/openAccess"); + openAccesRight.setRightsURI(EU_OPEN_ACCESS); rightsResultList.getRights().add(openAccesRight); } @@ -638,13 +655,13 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { for (String i : alternateIdentifierList) { AlternateIdentifier alternateID = new AlternateIdentifier(); if (i.startsWith(RDFConstants.HDL_PREFIX)) { - alternateID.setAlternateIdentifierType("HANDLE"); + alternateID.setAlternateIdentifierType(ID_TYPE_HANDLE); alternateID.setValue(LTPUtils.omitHdlPrefix(i)); } else if (i.startsWith(RDFConstants.DOI_PREFIX)) { - alternateID.setAlternateIdentifierType("DOI"); + alternateID.setAlternateIdentifierType(ID_TYPE_DOI); alternateID.setValue(LTPUtils.omitDoiPrefix(i)); } else { - alternateID.setAlternateIdentifierType("OTHER"); + alternateID.setAlternateIdentifierType(ID_TYPE_OTHER); alternateID.setValue(i); } alternateIdentifiers.getAlternateIdentifier().add(alternateID); @@ -689,32 +706,32 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { // ** if (this.textgrid) { - Contributor contributorInOpenAireRecord = new Contributor(); + Contributor contributor = new Contributor(); if (contributorField.equals("project")) { String fieldContent = - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, contributorField + ".value"); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, contributorField + DOT_VALUE); if (fieldContent != null && !fieldContent.isEmpty()) { - contributorInOpenAireRecord.setContributorName(fieldContent); - contributorInOpenAireRecord.setContributorType(ContributorType.OTHER); + contributor.setContributorName(fieldContent); + contributor.setContributorType(ContributorType.OTHER); info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier(); name.setNameIdentifierScheme(TG_PROJECT_CONTRIBUTOR_SCHEME); name.setValue( - OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, contributorField + ".id")); + OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, contributorField + DOT_ID)); name.setSchemeURI(TG_PROJECT_CONTRIBUTOR_SCHEME_URI); if (!name.getValue().isEmpty() && !name.getNameIdentifierScheme().isEmpty() && !name.getSchemeURI().isEmpty()) { - contributorInOpenAireRecord.setNameIdentifier(name); + contributor.setNameIdentifier(name); } - contributors.getContributor().add(contributorInOpenAireRecord); + contributors.getContributor().add(contributor); } } else { String fieldContent = OaipmhUtilities.firstEnrtryFieldLoader(this.jsonObj, contributorField); if (fieldContent != null && !fieldContent.isEmpty()) { - contributorInOpenAireRecord.setContributorName(fieldContent); - contributorInOpenAireRecord.setContributorType(ContributorType.DATA_MANAGER); - contributors.getContributor().add(contributorInOpenAireRecord); + contributor.setContributorName(fieldContent); + contributor.setContributorType(ContributorType.DATA_MANAGER); + contributors.getContributor().add(contributor); // info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name // = @@ -736,15 +753,15 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { List<String> contributorsResultList = OaipmhUtilities.listFieldLoader(this.jsonObj, contributorField); for (String i : contributorsResultList) { - Contributor contributorInOpenAireRecord = new Contributor(); + Contributor contributor = new Contributor(); if (i != null && !i.isEmpty()) { - contributorInOpenAireRecord.setContributorName(i); + contributor.setContributorName(i); if (contributorField.equals("administrativeMetadata.dcterms:creator")) { - contributorInOpenAireRecord.setContributorType(ContributorType.DATA_MANAGER); + contributor.setContributorType(ContributorType.DATA_MANAGER); } else { - contributorInOpenAireRecord.setContributorType(ContributorType.OTHER); + contributor.setContributorType(ContributorType.OTHER); } - contributors.getContributor().add(contributorInOpenAireRecord); + contributors.getContributor().add(contributor); } } } @@ -823,7 +840,7 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { // We must set Handle here for TG, cause we do not have a DOI! So this is not valid due to // Datacite schema validation! if (idValue != null && !idValue.isEmpty()) { - identifier.setIdentifierType("Handle"); + identifier.setIdentifierType(ID_TYPE_HANDLE); identifier.setValue(LTPUtils.omitHdlPrefix(idValue)); } } @@ -834,7 +851,7 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { else if (this.dariah) { // We set DOI for DH, 'cause we HAVE it! :-D - identifier.setIdentifierType("DOI"); + identifier.setIdentifierType(ID_TYPE_DOI); identifier.setValue(LTPUtils.omitDoiPrefix(idValue)); } @@ -866,20 +883,20 @@ public class RecordDelivererDatacite extends RecordDelivererAbstract { nameIdentifier.setValue(creatorID.split(":")[1]); nameIdentifier.setNameIdentifierScheme(creatorID.split(":")[0].toUpperCase()); // Check if the scheme URI can be set for GND (and PND). - if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase("pnd") - || nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase("gnd")) { - nameIdentifier.setNameIdentifierScheme("GND"); - nameIdentifier.setSchemeURI("https://d-nb.info/gnd/"); + if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase(PND) + || nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase(GND)) { + nameIdentifier.setNameIdentifierScheme(GND); + nameIdentifier.setSchemeURI(GND_SCHEME); } // Check if scheme can be set for VIAF. - else if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase("viaf")) { - nameIdentifier.setNameIdentifierScheme("VIAF"); - nameIdentifier.setSchemeURI("https://viaf.org/viaf/"); + else if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase(VIAF)) { + nameIdentifier.setNameIdentifierScheme(VIAF); + nameIdentifier.setSchemeURI(VIAF_SCHEME); } // Check if scheme can be set for ORCID. - else if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase("orcid")) { - nameIdentifier.setNameIdentifierScheme("ORCID"); - nameIdentifier.setSchemeURI("https://orcid.org/"); + else if (nameIdentifier.getNameIdentifierScheme().equalsIgnoreCase(ORCID)) { + nameIdentifier.setNameIdentifierScheme(ORCID); + nameIdentifier.setSchemeURI(ORCID_SCHEME); } // TODO Implement more scheme URIs! } else { -- GitLab