Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkjsf.git into...
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / RecordResponse.java
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/RecordResponse.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/RecordResponse.java
new file mode 100644 (file)
index 0000000..85fdc9a
--- /dev/null
@@ -0,0 +1,84 @@
+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