X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FResponseDataObject.java;h=572be9a24d1e5d13a748a6f468a2d1d818ac3527;hb=ea49f38ba51c8325879b693536940974b73a01c2;hp=3fe980363e67915b1ea5a788eab213a8e072ec57;hpb=3d72901f9f5e443837bf67603024de8c7d06a68e;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseDataObject.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseDataObject.java index 3fe9803..572be9a 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseDataObject.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseDataObject.java @@ -43,7 +43,7 @@ public class ResponseDataObject implements Serializable { elements.get(name).add(value); } else { List list = new ArrayList(); - list.add(value); + list.add(value); elements.put(name,list); } } @@ -52,6 +52,37 @@ public class ResponseDataObject implements Serializable { return elements.get(name); } + public List getElements(String name, int maxElements) { + if (getElements(name)!=null) { + int size = getElements(name).size(); + if (size>0) { + return ((ArrayList) getElements(name)).subList(0, Math.min(maxElements,size)); + } + } + return getElements(name); + } + + public List getElements(String name, int maxElements, int maxTotalValueLength) { + if (getElements(name)!=null) { + int size = getElements(name).size(); + if (size>0) { + List maxElementsList = ((ArrayList) getElements(name)).subList(0, Math.min(maxElements,size)); + int i = 0; + int totalLength = 0; + for (ResponseDataObject element : maxElementsList) { + totalLength += element.getValue().length(); + i++; + if (totalLength>maxTotalValueLength) { + break; + } + } + return maxElementsList.subList(0, i); + } + } + return getElements(name); + } + + public ResponseDataObject getOneElement (String name) { if (elements.get(name) != null) { return elements.get(name).get(0); @@ -66,7 +97,7 @@ public class ResponseDataObject implements Serializable { * @param name of the element * @return text value, empty string if none found */ - public String getOneElementValue (String name) { + public String getOneValue (String name) { if (getOneElement(name)!=null && getOneElement(name).getValue().length()>0) { return getOneElement(name).getValue(); } else { @@ -74,6 +105,19 @@ public class ResponseDataObject implements Serializable { } } + public String[] getValueArray (String name) { + List elements = getElements(name); + String[] valueArray = {}; + if (elements != null) { + valueArray = new String[elements.size()]; + int i = 0; + for (ResponseDataObject element : elements) { + valueArray[i++] = element.getValue(); + } + } + return valueArray; + } + public void appendContent (String content) { textContent = textContent + content; } @@ -92,7 +136,7 @@ public class ResponseDataObject implements Serializable { } public int getIntValue(String name) { - String val = getOneElementValue(name); + String val = getOneValue(name); if (val.length()==0) { return 0; } else { @@ -108,12 +152,15 @@ public class ResponseDataObject implements Serializable { return (CommandError) getOneElement("applicationerror"); } - public boolean hasPazpar2Error() { - return hasApplicationError() && getApplicationError().hasPazpar2Error(); + public boolean hasServiceError() { + return hasApplicationError() + && getApplicationError().isServiceError(); } - - + public ServiceError getServiceError() { + return (hasServiceError()? getApplicationError().getServiceError() : null); + } + public void setXml(String xml) { this.xml = xml; }