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