27cf4415dbc3a94ed13a3f61252e3413f9f80599
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / Pz2CommandResponse.java
1 package com.indexdata.mkjsf.pazpar2;\r
2 \r
3 import java.io.ByteArrayOutputStream;\r
4 import java.io.UnsupportedEncodingException;\r
5 \r
6 import com.indexdata.masterkey.pazpar2.client.Pazpar2HttpResponse;\r
7 \r
8 public class Pz2CommandResponse implements CommandResponse {\r
9   \r
10   private Pazpar2HttpResponse pz2httpResponse = null;\r
11   private int statusCode;\r
12   private String contentType;\r
13   private byte[] content = null;\r
14   private String contentString = null;\r
15   \r
16   public Pz2CommandResponse(Pazpar2HttpResponse pz2response, ByteArrayOutputStream content) {\r
17     pz2httpResponse = pz2response;\r
18     this.content = content.toByteArray();\r
19     this.statusCode = pz2httpResponse.getStatusCode();\r
20     this.contentType = pz2httpResponse.getContentType();\r
21   }\r
22   \r
23   public Pz2CommandResponse(Pazpar2HttpResponse pz2response, String content) {\r
24     pz2httpResponse = pz2response;\r
25     this.contentString = content;\r
26   }\r
27   \r
28   public Pz2CommandResponse(int statusCode, String content, String contentType) {\r
29     this.statusCode = statusCode;\r
30     this.contentString = content;\r
31     this.contentType = contentType;\r
32   }\r
33 \r
34   @Override\r
35   public int getStatusCode() {    \r
36     return statusCode;\r
37   }\r
38 \r
39   @Override\r
40   public String getContentType() {\r
41     return contentType;\r
42   }\r
43 \r
44   @Override\r
45   public String getResponseString() {\r
46     if (content == null) {\r
47       return contentString;\r
48     } else {\r
49       try {\r
50         return new String(content,"UTF-8");\r
51       } catch (UnsupportedEncodingException e) {      \r
52         e.printStackTrace();\r
53         return "<error>unsupported encoding</error>";\r
54       }\r
55     }\r
56   }\r
57 \r
58   @Override\r
59   public byte[] getBytes() {\r
60     return content;\r
61   }\r
62 \r
63   @Override\r
64   public boolean isBinary() {    \r
65     return !contentType.contains("xml");\r
66   }\r
67 \r
68 }\r