Renames data classes that are no longer pz2 only
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / ResponseDataObject.java
1 package com.indexdata.mkjsf.pazpar2.data;\r
2 \r
3 import java.io.Serializable;\r
4 import java.util.ArrayList;\r
5 import java.util.HashMap;\r
6 import java.util.List;\r
7 \r
8 import org.apache.log4j.Logger;\r
9 \r
10 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
11 \r
12 public class ResponseDataObject implements Serializable {\r
13 \r
14   Logger logger = Logger.getLogger(ResponseDataObject.class);\r
15   private static final long serialVersionUID = -3909755656714679959L;\r
16   String type = null;\r
17   HashMap<String,String> attributes = new HashMap<String,String>();\r
18   HashMap<String,List<ResponseDataObject>> elements = new HashMap<String,List<ResponseDataObject>>();\r
19   String textContent = "";\r
20   CommandError error = null;\r
21   String xml = null;\r
22         \r
23   public void setType (String type) {\r
24     this.type = type;\r
25   }\r
26   \r
27   public String getType () {\r
28     return type;\r
29   }\r
30   \r
31   public void setAttribute (String name, String value) {\r
32     attributes.put(name, value);\r
33   }\r
34   \r
35   public String getAttribute (String name) {\r
36     return attributes.get(name);\r
37   }\r
38     \r
39   public void addElement (String name, ResponseDataObject value) {    \r
40     if (elements.containsKey(name)) {\r
41       elements.get(name).add(value);\r
42     } else {\r
43       List<ResponseDataObject> list = new ArrayList<ResponseDataObject>();\r
44       list.add(value);\r
45       elements.put(name,list);\r
46     }\r
47   }\r
48   \r
49   public List<ResponseDataObject> getElements (String name) {\r
50     return elements.get(name);\r
51   }\r
52   \r
53   public ResponseDataObject getOneElement (String name) {\r
54     if (elements.get(name) != null) {\r
55       return elements.get(name).get(0);\r
56     } else {\r
57       return null;\r
58     }\r
59   }\r
60   \r
61   /**\r
62    * Returns the text content of the first element found with the given\r
63    * name\r
64    * @param name of the element \r
65    * @return text value, empty string if none found\r
66    */\r
67   public String getOneElementValue (String name) {\r
68     if (getOneElement(name)!=null && getOneElement(name).getValue().length()>0) {\r
69       return getOneElement(name).getValue();\r
70     } else {\r
71       return "";\r
72     }\r
73   }\r
74   \r
75   public void appendContent (String content) {\r
76     textContent = textContent + content;\r
77   }\r
78   \r
79   public String getValue () {\r
80     return textContent;\r
81   }\r
82   \r
83   public String getProperty(String name) {\r
84     List<ResponseDataObject> els = elements.get(name);\r
85     if (els != null) {\r
86       return els.get(0).getValue();\r
87     } else {     \r
88       return null;\r
89     }\r
90   }\r
91   \r
92   public int getIntValue(String name) {\r
93     String val = getOneElementValue(name);\r
94     if (val.length()==0) {\r
95       return 0;\r
96     } else {\r
97       return Integer.parseInt(val);\r
98     }\r
99   }\r
100     \r
101   public boolean hasApplicationError () {\r
102     return (getOneElement("applicationerror") != null);   \r
103   }\r
104   \r
105   public CommandError getApplicationError() {\r
106     return (CommandError) getOneElement("applicationerror");\r
107   }\r
108   \r
109   public boolean hasPazpar2Error() {\r
110     return hasApplicationError() && getApplicationError().hasPazpar2Error();\r
111   }\r
112   \r
113   public void setXml(String xml) {\r
114     this.xml = xml; \r
115   }\r
116   \r
117   public String getXml() {\r
118     if (type != null && type.equals("record")) {\r
119       logger.debug("Getting XML for "+type + ": "+xml);\r
120     }      \r
121     return xml == null ? "" : xml;\r
122   }\r
123         \r
124 }\r