1 package com.indexdata.mkjsf.pazpar2.data;
\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
8 import org.apache.log4j.Logger;
\r
10 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;
\r
12 public class ResponseDataObject implements Serializable {
\r
14 Logger logger = Logger.getLogger(ResponseDataObject.class);
\r
15 private static final long serialVersionUID = -3909755656714679959L;
\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
22 boolean isBinary = false;
\r
23 byte[] binary = null;
\r
25 public void setType (String type) {
\r
29 public String getType () {
\r
33 public void setAttribute (String name, String value) {
\r
34 attributes.put(name, value);
\r
37 public String getAttribute (String name) {
\r
38 return attributes.get(name);
\r
41 public void addElement (String name, ResponseDataObject value) {
\r
42 if (elements.containsKey(name)) {
\r
43 elements.get(name).add(value);
\r
45 List<ResponseDataObject> list = new ArrayList<ResponseDataObject>();
\r
47 elements.put(name,list);
\r
51 public List<ResponseDataObject> getElements (String name) {
\r
52 return elements.get(name);
\r
55 public ResponseDataObject getOneElement (String name) {
\r
56 if (elements.get(name) != null) {
\r
57 return elements.get(name).get(0);
\r
64 * Returns the text content of the first element found with the given
\r
66 * @param name of the element
\r
67 * @return text value, empty string if none found
\r
69 public String getOneValue (String name) {
\r
70 if (getOneElement(name)!=null && getOneElement(name).getValue().length()>0) {
\r
71 return getOneElement(name).getValue();
\r
77 public String[] getValueArray (String name) {
\r
78 List<ResponseDataObject> elements = getElements(name);
\r
79 String[] valueArray = {};
\r
80 if (elements != null) {
\r
81 valueArray = new String[elements.size()];
\r
83 for (ResponseDataObject element : elements) {
\r
84 valueArray[i++] = element.getValue();
\r
90 public void appendContent (String content) {
\r
91 textContent = textContent + content;
\r
94 public String getValue () {
\r
98 public String getProperty(String name) {
\r
99 List<ResponseDataObject> els = elements.get(name);
\r
101 return els.get(0).getValue();
\r
107 public int getIntValue(String name) {
\r
108 String val = getOneValue(name);
\r
109 if (val.length()==0) {
\r
112 return Integer.parseInt(val);
\r
116 public boolean hasApplicationError () {
\r
117 return (getOneElement("applicationerror") != null);
\r
120 public CommandError getApplicationError() {
\r
121 return (CommandError) getOneElement("applicationerror");
\r
124 public boolean hasServiceError() {
\r
125 return hasApplicationError()
\r
126 && getApplicationError().isServiceError();
\r
129 public ServiceError getServiceError() {
\r
130 return (hasServiceError()? getApplicationError().getServiceError() : null);
\r
133 public void setXml(String xml) {
\r
137 public String getXml() {
\r
138 if (type != null && type.equals("record")) {
\r
139 logger.debug("Getting XML for "+type + ": "+xml);
\r
141 return xml == null ? "" : xml;
\r
144 public boolean getHasResults () {
\r
145 return (xml != null && xml.length()>0) || (getIsBinary() && binary.length>0);
\r
148 public boolean getIsBinary () {
\r
152 public void setBinary(byte[] bytes) {
\r
157 public byte[] getBinary () {
\r