Moves request logic from pz2bean to individual commands
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / RecordResponse.java
1 package com.indexdata.mkjsf.pazpar2.data;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.List;\r
5 \r
6 import com.indexdata.mkjsf.pazpar2.data.Location;\r
7 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
8 \r
9 public class RecordResponse extends ResponseDataObject {\r
10 \r
11   private static final long serialVersionUID = 6682722004285796002L;\r
12 \r
13   public String getRecId () {\r
14     return getOneElementValue("recid");\r
15   }\r
16   \r
17   public List<Location> getLocations() {\r
18     List<Location> locations = new ArrayList<Location>();\r
19     if (getElements("location")!=null) {      \r
20       int i = 0;\r
21       for (ResponseDataObject element : getElements("location")) {\r
22         ((Location)element).setSequenceNumber(i++);\r
23         locations.add((Location)element);\r
24       }\r
25     } else {\r
26       logger.trace("Found no locations");\r
27     }\r
28     return locations;\r
29   }\r
30 \r
31   public String getTitle() {\r
32     return getOneElementValue("md-title");\r
33   }\r
34   \r
35   public String getDate() {\r
36     return getOneElementValue("md-date");\r
37   }\r
38   \r
39   public String getAuthor() {\r
40     return getOneElementValue("md-author");\r
41   }\r
42   \r
43   public String getSubject() {\r
44     return getOneElementValue("md-subject");\r
45   }\r
46   \r
47   public String getSubjects() {\r
48     StringBuilder builder = new StringBuilder("");\r
49     for (ResponseDataObject data : getElements("md-subject")) {\r
50       if (builder.length()==0) {\r
51         builder.append(data.getValue());\r
52       } else {\r
53         builder.append(", ");\r
54         builder.append(data.getValue());\r
55       }\r
56     }\r
57     return builder.toString();\r
58   }\r
59     \r
60   public Location getFirstLocation () {\r
61     return getLocations().size()>0 ? getLocations().get(0) : null;\r
62   }\r
63   \r
64   public String getActiveClients () {\r
65     if (getIsBinary()) {\r
66       return "0";\r
67     } else {\r
68       String activeclients = getOneElementValue("activeclients");\r
69       if (activeclients == null || activeclients.length()==0) {\r
70         // Look for override\r
71         activeclients = getAttribute("activeclients");\r
72       }\r
73       logger.info("Request to get activeclients on record [" + getRecId() + "]. Is [" + activeclients + "]");    \r
74       return activeclients;\r
75     }\r
76   }\r
77    \r
78 }\r