Skip to content
Snippets Groups Projects
Commit a7f88d77 authored by Stefan E. Funk's avatar Stefan E. Funk
Browse files

added logging to setdeliverer.

parent a31b0986
No related branches found
No related tags found
No related merge requests found
......@@ -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;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment