\r
import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
\r
+/**\r
+ * Parent class of all response data objects, with generic methods for retrieving data elements\r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
public class ResponseDataObject implements Serializable {\r
\r
Logger logger = Logger.getLogger(ResponseDataObject.class);\r
String textContent = "";\r
CommandError error = null;\r
String xml = null;\r
+ boolean isBinary = false;\r
+ byte[] binary = null;\r
\r
public void setType (String type) {\r
this.type = type;\r
return attributes.get(name);\r
}\r
\r
+ /**\r
+ * Used by the response XML parser to add child element objects to a parent element object\r
+ * \r
+ * @param name of the child element\r
+ * @param value the child object itself\r
+ */\r
public void addElement (String name, ResponseDataObject value) { \r
if (elements.containsKey(name)) {\r
elements.get(name).add(value);\r
} else {\r
List<ResponseDataObject> list = new ArrayList<ResponseDataObject>();\r
- list.add(value);\r
+ list.add(value); \r
elements.put(name,list);\r
}\r
}\r
public List<ResponseDataObject> getElements (String name) {\r
return elements.get(name);\r
}\r
- \r
+ \r
public ResponseDataObject getOneElement (String name) {\r
if (elements.get(name) != null) {\r
return elements.get(name).get(0);\r
* @param name of the element \r
* @return text value, empty string if none found\r
*/\r
- public String getOneElementValue (String name) {\r
+ public String getOneValue (String name) {\r
if (getOneElement(name)!=null && getOneElement(name).getValue().length()>0) {\r
return getOneElement(name).getValue();\r
} else {\r
}\r
}\r
\r
+ /**\r
+ * Returns string array with the values of the named element(s)\r
+ * \r
+ * @param name of the child object(s) to retrieve value(s) from\r
+ * @return\r
+ */\r
+ public String[] getValueArray (String name) {\r
+ List<ResponseDataObject> elements = getElements(name);\r
+ String[] valueArray = {};\r
+ if (elements != null) {\r
+ valueArray = new String[elements.size()];\r
+ int i = 0;\r
+ for (ResponseDataObject element : elements) {\r
+ valueArray[i++] = element.getValue();\r
+ } \r
+ }\r
+ return valueArray;\r
+ }\r
+ \r
public void appendContent (String content) {\r
textContent = textContent + content;\r
}\r
}\r
\r
public int getIntValue(String name) {\r
- String val = getOneElementValue(name);\r
+ String val = getOneValue(name);\r
if (val.length()==0) {\r
return 0;\r
} else {\r
return (CommandError) getOneElement("applicationerror");\r
}\r
\r
- public boolean hasPazpar2Error() {\r
- return hasApplicationError() && getApplicationError().hasPazpar2Error();\r
+ public boolean hasServiceError() {\r
+ return hasApplicationError() \r
+ && getApplicationError().isServiceError(); \r
}\r
\r
+ public ServiceError getServiceError() {\r
+ return (hasServiceError()? getApplicationError().getServiceError() : null);\r
+ }\r
+ \r
public void setXml(String xml) {\r
this.xml = xml; \r
}\r
}\r
\r
public boolean getHasResults () {\r
- return (xml != null && xml.length()>0);\r
+ return (xml != null && xml.length()>0) || (getIsBinary() && binary.length>0);\r
+ }\r
+ \r
+ public boolean getIsBinary () {\r
+ return isBinary;\r
+ }\r
+ \r
+ public void setBinary(byte[] bytes) {\r
+ isBinary = true;\r
+ binary = bytes;\r
}\r
+ \r
+ public byte[] getBinary () {\r
+ return binary;\r
+ }\r
+ \r
+ \r
\r
}\r