From a7f88d77f3ef31cbf5e5444f90fe0720b86a01ce Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Wed, 16 May 2018 18:44:51 +0200 Subject: [PATCH] added logging to setdeliverer. --- .../textgrid/middleware/SetDeliverer.java | 450 ++++++++++-------- 1 file changed, 244 insertions(+), 206 deletions(-) diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java index 31a50f62..328fa9ec 100644 --- a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java +++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java @@ -4,8 +4,6 @@ import info.textgrid.middleware.oaipmh.ListSetsType; import info.textgrid.middleware.oaipmh.SetType; import info.textgrid.namespaces.middleware.tgcrud.common.TextGridMimetypes; import info.textgrid.utils.sesameclient.SesameClient; - - import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.Hashtable; @@ -13,7 +11,6 @@ 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; @@ -22,209 +19,250 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; +/** + * + */ public class SetDeliverer { - private OAI_ESClient oaiEsClient; - private SesameClient sparqlClient; - - public SetDeliverer(OAI_ESClient oaiEsClient, boolean textgrid, boolean dariah) { - this.oaiEsClient = oaiEsClient; - this.textgrid = textgrid; - this.dariah = dariah; -// System.out.println(dariah); - } - - 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 Set<String> project = new LinkedHashSet<String>(); - private static Map<String, String> setSet = new Hashtable<String, String >(); - private boolean textgrid; - private boolean dariah; - - - public ListSetsType setListBuilder() { - //System.out.println("HALLO !!!!!!!!!!!!!!!!!!!"); -// System.out.println("DARIAH: " + dariah); -// System.out.println("TEXTGRID: " + textgrid); - ListSetsType setList = new ListSetsType(); - QueryBuilder aggQuery; - //System.out.println("TEXTGRID: " + textgrid); - if (textgrid) { - aggQuery = QueryBuilders.matchPhraseQuery("format",TextGridMimetypes.DARIAH_COLLECTION); - }else{ -// System.out.println("JUHU"); - aggQuery = QueryBuilders.matchPhraseQuery("descriptiveMetadata.dc:format", TextGridMimetypes.DARIAH_COLLECTION); - } - -// System.out.println(aggQuery); - - SearchRequestBuilder request = OAI_ESClient.getOaiESClient() - .prepareSearch(OAI_ESClient.getEsIndex()) - .setTypes(OAI_ESClient.getEsType()) - .setQuery(aggQuery) - .addField(formatField) - .addField(identifierField) - .addField("project.value") - .addField("project.id") - .setSize(100000); - - //System.out.println("QUERY: " + request); - - SearchResponse getRecordListItems = request.execute().actionGet(); - //System.out.println(getRecordListItems); - for (SearchHit hit : getRecordListItems.getHits().getHits()) { - //System.out.println("HALLO HALLO"); - //if(hit.getFields().get(formatField) != null && hit.getFields().get(formatField).value().equals(formatToFilter)) { - //System.out.println("IDENTIFIER FIELD: " + identifierField); -// System.out.println("DARIAH SET"); - if(dariah == true && hit.getFields().get(identifierField).values().get(0).toString().startsWith("hdl:")){ -// System.out.println("JUHU"); - this.identifier.add(hit.getFields().get(identifierField).values().get(0).toString()); - - } - - if(textgrid==true){ - //System.out.println("HALLO TEXTGRIT"); - 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); - - this.setSet.put(projectID, projectName); - - } - } - - - //} - - if(textgrid==true){ -// System.out.println("HALLO GRIT"); - - 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(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(repositoryObjectURIPrefix.length()); - - - GetRequestBuilder collectionNameById = OAI_ESClient - .getOaiESClient().prepareGet() - .setIndex(OAI_ESClient.getEsIndex()) - .setType(OAI_ESClient.getEsType()) - .setFields(specField) - .setId(id); - - GetResponse setSpec = collectionNameById.execute().actionGet(); - String setName = ""; - if(setSpec != null && setSpec.isExists()){ - if (setSpec.getField(specField) != null) { - setName = setSpec.getField(specField).getValue().toString(); - } - } - SetType set = new SetType(); - - set.setSetName(setName); - set.setSetSpec(specFieldPrefix + id); - setList.getSet().add(set); - - - } - } - identifier.clear(); - return setList; - - } - - public String getFormatField() { - return formatField; - } - public void setFormatField(String formatField) { - this.formatField = formatField; - } - - public String getFormatToFilter() { - return formatToFilter; - } - - public void setFormatToFilter(String formatToFilter) { - this.formatToFilter = formatToFilter; - } - - public String getIdentifierField() { - return identifierField; - } - - public void setIdentifierField(String identifierField) { - this.identifierField = identifierField; - } - - public String getRepositoryObjectURIPrefix() { - return repositoryObjectURIPrefix; - } - - public void setRepositoryObjectURIPrefix(String repositoryObjectURIPrefix) { - this.repositoryObjectURIPrefix = repositoryObjectURIPrefix; - } - - public String getSpecField() { - return specField; - } - - public void setSpecField(String titleField) { - this.specField = titleField; - } - - public String getSpecFieldPrefix() { - return specFieldPrefix; - } - - public void setSpecFieldPrefix(String specFieldPrefix) { - this.specFieldPrefix = specFieldPrefix; - } - - public boolean isTextgrid() { - return textgrid; - } - - public void setTextgrid(boolean textgrid) { - this.textgrid = textgrid; - } - - public boolean isDariah() { - return dariah; - } - - public void setDariah(boolean dariah) { - this.dariah = dariah; - } - - public SesameClient getSparqlClient() { - return sparqlClient; - } - - public void setSparqlClient(SesameClient sparqlClient) { - this.sparqlClient = sparqlClient; - } + private static Map<String, String> setSet = new Hashtable<String, String>(); + + private OAI_ESClient oaiEsClient; + private SesameClient sparqlClient; + 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 Set<String> project = new LinkedHashSet<String>(); + private boolean textgrid; + private boolean dariah; + + /** + * @param oaiEsClient + * @param textgrid + * @param dariah + */ + public SetDeliverer(OAI_ESClient oaiEsClient, boolean textgrid, boolean dariah) { + this.oaiEsClient = oaiEsClient; + this.textgrid = textgrid; + this.dariah = dariah; + } + + /** + * @return + */ + public ListSetsType setListBuilder() { + + String meth = "setListBuilder() > "; + System.out.println(meth + "DARIAH=" + this.dariah + ", TEXTGRID=" + this.textgrid); + + ListSetsType setList = new ListSetsType(); + QueryBuilder aggQuery; + if (this.textgrid) { + aggQuery = QueryBuilders.matchPhraseQuery("format", TextGridMimetypes.DARIAH_COLLECTION); + } else { + aggQuery = QueryBuilders.matchPhraseQuery("descriptiveMetadata.dc:format", + TextGridMimetypes.DARIAH_COLLECTION); + } + + System.out.println(meth + "aggQuery: " + aggQuery); + + 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); + + System.out.println(meth + "request: " + request); + + SearchResponse getRecordListItems = request.execute().actionGet(); + + System.out.println(meth + "getRecordListItems:" + getRecordListItems); + + 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); + + System.out.println(meth + "PID: " + 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); + this.setSet.put(projectID, projectName); + + System.out.println(meth + "projectID: " + projectSetSpec); + + 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; + } + + /** + * @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; + } + + /** + * @return + */ + public SesameClient getSparqlClient() { + return this.sparqlClient; + } + + /** + * @param sparqlClient + */ + public void setSparqlClient(SesameClient sparqlClient) { + this.sparqlClient = sparqlClient; + } } -- GitLab