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