From ac412e93e26c951eef0df66d2bc9abae93a187ce Mon Sep 17 00:00:00 2001
From: mbrodhu <brodhun@sub.uni-goettingen.de>
Date: Sat, 13 Dec 2014 13:57:58 +0100
Subject: [PATCH] add class SetDeliverer.java to path

---
 .../textgrid/middleware/SetDeliverer.java     | 62 +++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java

diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
new file mode 100644
index 00000000..e2af0ba9
--- /dev/null
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/SetDeliverer.java
@@ -0,0 +1,62 @@
+package info.textgrid.middleware;
+
+import info.textgrid.middleware.oaipmh.ListSetsType;
+import info.textgrid.middleware.oaipmh.SetType;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.elasticsearch.action.search.SearchRequestBuilder;
+import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.index.query.QueryStringQueryBuilder;
+import org.elasticsearch.search.SearchHit;
+
+
+
+
+public class SetDeliverer {
+
+	ListSetsType setList = new ListSetsType();
+	private OAI_ESClient oaiEsClient;
+	
+	public SetDeliverer(OAI_ESClient oaiEsClient) {
+		this.oaiEsClient = oaiEsClient;
+	}
+	
+	private Set<String> projects = new LinkedHashSet<String>();
+	
+	public ListSetsType setListBuilder(){
+		
+		QueryStringQueryBuilder aggQuery = QueryBuilders.queryString("*");
+		
+		SearchRequestBuilder request = oaiEsClient.getOaiESClient()
+				.prepareSearch(oaiEsClient.getEsIndex())
+				.setTypes(oaiEsClient.getEsType())
+				.setQuery(aggQuery)
+				.addField("project.value")
+				.setSize(100000);
+		
+				SearchResponse getRecordListItems = request.execute().actionGet();				
+		
+				for (SearchHit hit : getRecordListItems.getHits().getHits()){
+					
+					projects.add(hit.getFields().get("project.value").values().get(0)
+							.toString());
+				}
+				
+				
+				for (String project : projects){
+					SetType set = new SetType();
+					
+					set.setSetName("project");
+					set.setSetSpec("project:" + project);
+					
+					setList.getSet().add(set);
+				}
+		
+		return setList;
+		
+	}
+	
+}
-- 
GitLab