--- /dev/null
+package com.indexdata.mkjsf.pazpar2.data;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import com.indexdata.mkjsf.pazpar2.data.Location;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
+\r
+/**\r
+ * Data from the <code>record</code> command, can be accessed by <code>pzresp.record</code>\r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public class RecordResponse extends ResponseDataObject {\r
+\r
+ private static final long serialVersionUID = 6682722004285796002L;\r
+\r
+ public String getRecId () {\r
+ return getOneValue("recid");\r
+ }\r
+ \r
+ public List<Location> getLocations() {\r
+ List<Location> locations = new ArrayList<Location>();\r
+ if (getElements("location")!=null) { \r
+ int i = 0;\r
+ for (ResponseDataObject element : getElements("location")) {\r
+ ((Location)element).setSequenceNumber(i++);\r
+ locations.add((Location)element);\r
+ }\r
+ } else {\r
+ logger.trace("Found no locations");\r
+ }\r
+ return locations;\r
+ }\r
+\r
+ public String getTitle() {\r
+ return getOneValue("md-title");\r
+ }\r
+ \r
+ public String getDate() {\r
+ return getOneValue("md-date");\r
+ }\r
+ \r
+ public String getAuthor() {\r
+ return getOneValue("md-author");\r
+ }\r
+ \r
+ public String getSubject() {\r
+ return getOneValue("md-subject");\r
+ }\r
+ \r
+ public String getSubjects() {\r
+ StringBuilder builder = new StringBuilder("");\r
+ for (ResponseDataObject data : getElements("md-subject")) {\r
+ if (builder.length()==0) {\r
+ builder.append(data.getValue());\r
+ } else {\r
+ builder.append(", ");\r
+ builder.append(data.getValue());\r
+ }\r
+ }\r
+ return builder.toString();\r
+ }\r
+ \r
+ public Location getFirstLocation () {\r
+ return getLocations().size()>0 ? getLocations().get(0) : null;\r
+ }\r
+ \r
+ public String getActiveClients () {\r
+ if (getIsBinary()) {\r
+ return "0";\r
+ } else {\r
+ String activeclients = getOneValue("activeclients");\r
+ if (activeclients == null || activeclients.length()==0) {\r
+ // Look for override\r
+ activeclients = getAttribute("activeclients");\r
+ }\r
+ logger.info("Request to get activeclients on record [" + getRecId() + "]. Is [" + activeclients + "]"); \r
+ return activeclients;\r
+ }\r
+ }\r
+ \r
+}\r