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 7d48bb5e44ac1a8c386e1015c5f87989145fed78..83ef09a41011d572fe08ad7997d26cd26e5a6cda 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/RecordDelivererDATACITE.java @@ -56,7 +56,7 @@ import info.textgrid.middleware.oaipmh.Resource.Titles.Title; /** * @author Maximilian Brodhun, SUB Göttingen * @author Stefan E. Funk, SUB Göttingen - * @version 2021-07-23 + * @version 2021-09-03 * @since 2020-06-13 */ @Component @@ -684,31 +684,46 @@ public class RecordDelivererDATACITE extends RecordDelivererAbstract { Contributors contributors = new Contributors(); - // FIXME fu: Please adapt to DARIAH! - for (String contributorField : this.oarContributorFields) { Contributor contributorInOpenAireRecord = new Contributor(); - if (contributorField.equals("project")) { - contributorInOpenAireRecord.setContributorName( - OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField + ".value")); - contributorInOpenAireRecord.setContributorType(ContributorType.OTHER); - info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = - new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier(); - name.setNameIdentifierScheme("textgrid"); - name.setValue(OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField + ".id")); - name.setSchemeURI("https://textgridlab.org/schema/textgrid-metadata_2010.xsd"); - contributorInOpenAireRecord.setNameIdentifier(name); - } else { + + // ** + // TextGrid + // ** + + if (this.textgrid) { + if (contributorField.equals("project")) { + contributorInOpenAireRecord.setContributorName( + OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField + ".value")); + contributorInOpenAireRecord.setContributorType(ContributorType.OTHER); + info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = + new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier(); + name.setNameIdentifierScheme("textgrid"); + name.setValue(OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField + ".id")); + name.setSchemeURI("https://textgridlab.org/schema/textgrid-metadata_2010.xsd"); + contributorInOpenAireRecord.setNameIdentifier(name); + } else { + contributorInOpenAireRecord + .setContributorName(OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField)); + contributorInOpenAireRecord.setContributorType(ContributorType.DATA_MANAGER); + /* + * info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = + * new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier(); + * name.setNameIdentifierScheme("textgrid"); name.setValue(""); + * name.setSchemeURI("http://www.textgridlab.org/schema/textgrid-metadata_2010.xsd"); + * contributorInOpenAireRecord.setNameIdentifier(name); + */ + } + } + + // ** + // DARIAH + // ** + + else if (this.dariah) { contributorInOpenAireRecord .setContributorName(OAIPMHUtilities.fieldLoader(this.jsonObj, contributorField)); contributorInOpenAireRecord.setContributorType(ContributorType.DATA_MANAGER); - /* - * info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier name = - * new info.textgrid.middleware.oaipmh.Resource.Contributors.Contributor.NameIdentifier(); - * name.setNameIdentifierScheme("textgrid"); name.setValue(""); - * name.setSchemeURI("http://www.textgridlab.org/schema/textgrid-metadata_2010.xsd"); - * contributorInOpenAireRecord.setNameIdentifier(name); - */ } contributors.getContributor().add(contributorInOpenAireRecord); diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java deleted file mode 100644 index 3c2fb91a1a5c3a4c16fe57cda2e682cc23c2eaa6..0000000000000000000000000000000000000000 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ /dev/null @@ -1,272 +0,0 @@ -//package info.textgrid.middleware; -// -//import java.io.UnsupportedEncodingException; -//import java.net.URLDecoder; -//import java.util.Hashtable; -//import java.util.Iterator; -//import java.util.LinkedHashSet; -//import java.util.Map; -//import java.util.Set; -//import org.elasticsearch.action.get.GetRequestBuilder; -//import org.elasticsearch.action.get.GetResponse; -//import org.elasticsearch.action.search.SearchRequestBuilder; -//import org.elasticsearch.action.search.SearchResponse; -//import org.elasticsearch.index.query.QueryBuilder; -//import org.elasticsearch.index.query.QueryBuilders; -//import org.elasticsearch.search.SearchHit; -//import info.textgrid.middleware.oaipmh.ListSetsType; -//import info.textgrid.middleware.oaipmh.RequestType; -//import info.textgrid.middleware.oaipmh.SetType; -//import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes; -// -///** -// * -// */ -//public class SetDeliverer { -// -// private static Map<String, String> setSet = new Hashtable<String, String>(); -// -// private Set<String> identifier = new LinkedHashSet<String>(); -// private String formatField; -// private String formatToFilter; -// private String identifierField; -// private String repositoryObjectURIPrefix; -// private String specField; -// private String specFieldPrefix; -// private boolean textgrid; -// private boolean dariah; -// -// /** -// * @param oaiEsClient -// * @param textgrid -// * @param dariah -// */ -// public SetDeliverer(boolean textgrid, boolean dariah) { -// this.textgrid = textgrid; -// this.dariah = dariah; -// } -// -// /** -// * @return -// */ -// public ListSetsType setListBuilder() { -// -// ListSetsType setList = new ListSetsType(); -// QueryBuilder aggQuery; -// if (this.textgrid) { -// aggQuery = QueryBuilders.matchPhraseQuery("format", TextGridMimetypes.EDITION); -// } else { -// aggQuery = QueryBuilders.matchPhraseQuery("descriptiveMetadata.dc:format", -// TextGridMimetypes.DARIAH_COLLECTION); -// } -// -// SearchRequestBuilder request = OAI_ESClient.getOaiESClient() -// .prepareSearch(OAI_ESClient.getEsIndex()).setTypes(OAI_ESClient.getEsType()) -// .setQuery(aggQuery) -// .addField(this.formatField) -// .addField(this.identifierField) -// .addField("project.value") -// .addField("project.id") -// .setSize(100000); -// -// SearchResponse getRecordListItems = request.execute().actionGet(); -// -// for (SearchHit hit : getRecordListItems.getHits().getHits()) { -// if (this.dariah == true && hit.getFields().get(this.identifierField).values().get(0) -// .toString().startsWith("hdl:")) { -// String pid = hit.getFields().get(this.identifierField).values().get(0).toString(); -// this.identifier.add(pid); -// -// } -// -// if (this.textgrid == true) { -// String projectName = hit.getFields().get("project.value").values().get(0).toString(); -// String projectID = hit.getFields().get("project.id").values().get(0).toString(); -// String projectSetSpec = projectName.concat(":").concat(projectID); -// SetDeliverer.setSet.put(projectID, projectName); -// } -// } -// -// if (this.textgrid == true) { -// Iterator it = setSet.entrySet().iterator(); -// while (it.hasNext()) { -// Map.Entry pair = (Map.Entry) it.next(); -// SetType set = new SetType(); -// set.setSetName(pair.getValue().toString()); -// set.setSetSpec("project:" + pair.getKey().toString()); -// setList.getSet().add(set); -// } -// } -// -// if (this.dariah == true) { -// for (String identifierSetSpec : this.identifier) { -// String id = identifierSetSpec; -// try { -// id = URLDecoder.decode(id, "UTF-8"); -// } catch (UnsupportedEncodingException e) { -// e.printStackTrace(); -// } -// -// id = identifierSetSpec.substring(this.repositoryObjectURIPrefix.length()); -// -// GetRequestBuilder collectionNameById = -// OAI_ESClient.getOaiESClient().prepareGet().setIndex(OAI_ESClient.getEsIndex()) -// .setType(OAI_ESClient.getEsType()).setFields(this.specField).setId(id); -// -// GetResponse setSpec = collectionNameById.execute().actionGet(); -// String setName = ""; -// if (setSpec != null && setSpec.isExists()) { -// if (setSpec.getField(this.specField) != null) { -// setName = setSpec.getField(this.specField).getValue().toString(); -// } -// } -// -// SetType set = new SetType(); -// set.setSetName(setName); -// set.setSetSpec(this.specFieldPrefix + id); -// setList.getSet().add(set); -// } -// } -// -// this.identifier.clear(); -// -// return setList; -// } -// -// /** -// * <p> -// * Checking the request if all necessary values are set or not allowed values are not set. -// * </p> -// * -// * @param request the initially request from the OAIPMG client -// * @return a boolean indicating the correctness of the request -// */ -// public boolean requestChecker(RequestType request) { -// -// boolean noArguments; -// -// if (request.getFrom() != null || -// request.getIdentifier() != null || -// request.getMetadataPrefix() != null) { -// noArguments = false; -// } else if (request.getResumptionToken() != null || -// request.getSet() != null || -// request.getUntil() != null) { -// -// noArguments = false; -// } else { -// noArguments = true; -// } -// return noArguments; -// } -// -// /** -// * @return -// */ -// public String getFormatField() { -// return this.formatField; -// } -// -// /** -// * @param formatField -// */ -// public void setFormatField(String formatField) { -// this.formatField = formatField; -// } -// -// public String getFormatToFilter() { -// return this.formatToFilter; -// } -// -// /** -// * @param formatToFilter -// */ -// public void setFormatToFilter(String formatToFilter) { -// this.formatToFilter = formatToFilter; -// } -// -// /** -// * @return -// */ -// public String getIdentifierField() { -// return this.identifierField; -// } -// -// /** -// * @param identifierField -// */ -// public void setIdentifierField(String identifierField) { -// this.identifierField = identifierField; -// } -// -// /** -// * @return -// */ -// public String getRepositoryObjectURIPrefix() { -// return this.repositoryObjectURIPrefix; -// } -// -// /** -// * @param repositoryObjectURIPrefix -// */ -// public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) { -// this.repositoryObjectURIPrefix = repositoryObjectURIPrefix; -// } -// -// /** -// * @return -// */ -// public String getSpecField() { -// return this.specField; -// } -// -// /** -// * @param titleField -// */ -// public void setSpecField(String titleField) { -// this.specField = titleField; -// } -// -// /** -// * @return -// */ -// public String getSpecFieldPrefix() { -// return this.specFieldPrefix; -// } -// -// /** -// * @param specFieldPrefix -// */ -// public void setSpecFieldPrefix(String specFieldPrefix) { -// this.specFieldPrefix = specFieldPrefix; -// } -// -// /** -// * @return -// */ -// public boolean isTextgrid() { -// return this.textgrid; -// } -// -// /** -// * @param textgrid -// */ -// public void setTextgrid(boolean textgrid) { -// this.textgrid = textgrid; -// } -// -// /** -// * @return -// */ -// public boolean isDariah() { -// return this.dariah; -// } -// -// /** -// * @param dariah -// */ -// public void setDariah(boolean dariah) { -// this.dariah = dariah; -// } -// -//}