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