From 52bf3c85ddaea55ff6d67f670843af6a145b2a55 Mon Sep 17 00:00:00 2001
From: mbrodhu <brodhun@sub.uni-goettingen.de>
Date: Thu, 8 Jan 2015 10:30:39 +0100
Subject: [PATCH] extracted function for field loading into an extra class

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

diff --git a/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
new file mode 100644
index 00000000..d0629587
--- /dev/null
+++ b/oaipmh-core/src/main/java/info/textgrid/middleware/DublinCoreFieldLoader.java
@@ -0,0 +1,234 @@
+package info.textgrid.middleware;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+
+import org.apache.commons.logging.LogFactory;
+import org.elasticsearch.action.get.GetResponse;
+import org.elasticsearch.search.SearchHit;
+
+public class DublinCoreFieldLoader {
+
+	public static List<String>							contributors		= new ArrayList<String>();
+	public static List<String>							coverages			= new ArrayList<String>();
+	public static List<String>							creators			= new ArrayList<String>();
+	public static List<String>							dates				= new ArrayList<String>();
+	public static List<String>							descriptions		= new ArrayList<String>();
+	public static List<String>							formats				= new ArrayList<String>();
+	public static List<String>							identifiers			= new ArrayList<String>();
+	public static List<String>							languages			= new ArrayList<String>();
+	public static List<String>							publishers			= new ArrayList<String>();
+	public static List<String>							relations			= new ArrayList<String>();
+	public static List<String>							rights				= new ArrayList<String>();
+	public static List<String>							sources				= new ArrayList<String>();
+	public static List<String>							subjects			= new ArrayList<String>();
+	public static List<String>							titles				= new ArrayList<String>();
+	public static List<String>							types				= new ArrayList<String>();
+	
+	
+	private static org.apache.commons.logging.Log	log					= LogFactory.getLog(RecordDeliverer.class);
+	
+	public static List<String> setContributor(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				contributors.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return contributors;
+	}
+	
+	public static List<String> setCreator(GetResponse responseWorkValues, String field){
+		
+		if (responseWorkValues.getField(field) != null) {
+			creators.add(responseWorkValues.getField(field).getValue()
+					.toString());
+		}
+		
+		return creators;
+	}
+	
+	
+	public static List<String> setCoverage(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			if (responseWorkValues.getField(field) != null) {
+				coverages.add(responseWorkValues.getField(field)
+					.getValue().toString());
+			}
+		}
+		
+		return coverages;
+	}
+	
+	public static List<String> setDate(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			try {
+				if (responseWorkValues.getField(field) != null) {
+					dates.add(OAIPMHUtillities.convertDateFormat(
+						responseWorkValues.getField(field).getValue()
+								.toString()).toXMLFormat());
+				}
+			} catch (ParseException e) {
+			log.debug(e);
+			} catch (DatatypeConfigurationException e) {
+				log.debug(e);
+			}
+		}
+		
+		return dates;
+	}
+	
+	public static List<String> setDescription(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			if (responseWorkValues.getField(field) != null) {
+				descriptions.add(responseWorkValues.getField(field)
+					.getValue().toString());
+			}
+		}
+		
+		return descriptions;
+	}
+	
+	public static List<String> setFormat(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				formats.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return formats;
+	}
+	
+	public static List<String> setIdentifier(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				identifiers.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return identifiers;
+	}
+	
+	public static List<String> setLanguage(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				languages.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return languages;
+	}
+	
+	public static List<String> setPublisher(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				publishers.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return publishers;
+	}
+	
+	public static List<String> setRelation(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				relations.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return relations;
+	}
+	
+	public static List<String> setRelationForWork(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			if (responseWorkValues.getField(field) != null) {
+				relations.add(responseWorkValues.getField(field)
+					.getValue().toString());
+			}
+		}
+		
+		return relations;
+	}
+	
+	public static List<String> setRights(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				rights.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return rights;
+	}
+	
+	public static List<String> setSources(SearchHit hit, String[] values){
+		
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				sources.add(hit.getFields().get(field)
+						.values().get(0).toString());
+			}
+		}
+		
+		return sources;
+	}
+	
+	public static List<String> setSubject(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			if (responseWorkValues.getField(field) != null) {
+				subjects.add(responseWorkValues.getField(field)
+					.getValue().toString());
+			}
+		}
+		
+		return subjects;
+	}
+	
+	public static List<String> setTitle(SearchHit hit, String[] values){
+				
+		for(String field : values){
+			if (hit.getFields().get(field) != null) {
+				for (int i = 0; i < hit.getFields().get(field)
+						.getValues().size(); i++) {
+					titles.add(hit.getFields().get(field).values()
+							.get(i).toString());
+				}
+			}
+		}
+		
+		return titles;
+	}
+	
+	public static List<String> setType(GetResponse responseWorkValues, String[] values){
+		
+		for(String field : values){
+			if (responseWorkValues.getField(field) != null) {
+				types.add(responseWorkValues.getField(field)
+					.getValue().toString());
+			}
+		}
+		
+		return types;
+	}
+}
-- 
GitLab