Tweaks configuration, command responses, pz2/sp switching
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / ClientCommandResponse.java
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/ClientCommandResponse.java b/src/main/java/com/indexdata/mkjsf/pazpar2/ClientCommandResponse.java
new file mode 100644 (file)
index 0000000..0375ca1
--- /dev/null
@@ -0,0 +1,67 @@
+package com.indexdata.mkjsf.pazpar2;\r
+\r
+import java.io.ByteArrayOutputStream;\r
+import java.io.UnsupportedEncodingException;\r
+\r
+import com.indexdata.masterkey.pazpar2.client.Pazpar2HttpResponse;\r
+\r
+public class ClientCommandResponse implements CommandResponse {\r
+    \r
+  private int statusCode;\r
+  private String contentType;\r
+  private byte[] content = null;\r
+  private String contentString = null;\r
+  \r
+  public ClientCommandResponse(Pazpar2HttpResponse pz2response, ByteArrayOutputStream content) {    \r
+    this.content = content.toByteArray();\r
+    this.statusCode = pz2response.getStatusCode();\r
+    this.contentType = pz2response.getContentType();\r
+  }\r
+    \r
+  public ClientCommandResponse(int statusCode, String content, String contentType) {\r
+    this.statusCode = statusCode;\r
+    this.contentString = content;\r
+    this.contentType = contentType;\r
+  }\r
+  \r
+  public ClientCommandResponse(int statusCode, byte[] content, String contentType) {\r
+    this.statusCode = statusCode;\r
+    this.content = content;\r
+    this.contentType = contentType;\r
+  }\r
+\r
+  @Override\r
+  public int getStatusCode() {    \r
+    return statusCode;\r
+  }\r
+\r
+  @Override\r
+  public String getContentType() {\r
+    return contentType;\r
+  }\r
+\r
+  @Override\r
+  public String getResponseString() {\r
+    if (content == null) {\r
+      return contentString;\r
+    } else {\r
+      try {\r
+        return new String(content,"UTF-8");\r
+      } catch (UnsupportedEncodingException e) {      \r
+        e.printStackTrace();\r
+        return "<error>unsupported encoding</error>";\r
+      }\r
+    }\r
+  }\r
+\r
+  @Override\r
+  public byte[] getBytes() {\r
+    return content;\r
+  }\r
+\r
+  @Override\r
+  public boolean isBinary() {    \r
+    return !contentType.contains("xml");\r
+  }\r
+\r
+}\r