Adds support for downloading binary record response
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / RecordResponse.java
index 0ba7988..55aca4e 100644 (file)
@@ -4,9 +4,9 @@ import java.util.ArrayList;
 import java.util.List;\r
 \r
 import com.indexdata.mkjsf.pazpar2.data.Location;\r
-import com.indexdata.mkjsf.pazpar2.data.Pazpar2ResponseData;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
 \r
-public class RecordResponse extends Pazpar2ResponseData {\r
+public class RecordResponse extends ResponseDataObject {\r
 \r
   private static final long serialVersionUID = 6682722004285796002L;\r
 \r
@@ -16,8 +16,14 @@ public class RecordResponse extends Pazpar2ResponseData {
   \r
   public List<Location> getLocations() {\r
     List<Location> locations = new ArrayList<Location>();\r
-    for (Pazpar2ResponseData element : getElements("location")) {\r
-      locations.add((Location)element);\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.debug("Found no locations");\r
     }\r
     return locations;\r
   }\r
@@ -40,7 +46,7 @@ public class RecordResponse extends Pazpar2ResponseData {
   \r
   public String getSubjects() {\r
     StringBuilder builder = new StringBuilder("");\r
-    for (Pazpar2ResponseData data : getElements("md-subject")) {\r
+    for (ResponseDataObject data : getElements("md-subject")) {\r
       if (builder.length()==0) {\r
         builder.append(data.getValue());\r
       } else {\r
@@ -56,8 +62,17 @@ public class RecordResponse extends Pazpar2ResponseData {
   }\r
   \r
   public String getActiveClients () {\r
-    return getOneElementValue("activeclients");\r
+    if (getIsBinary()) {\r
+      return "0";\r
+    } else {\r
+      String activeclients = getOneElementValue("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
+   \r
 }\r