001 /******************************************************************************
002 * Copyright (C) MActor Developers. All rights reserved. *
003 * ---------------------------------------------------------------------------*
004 * This file is part of MActor. *
005 * *
006 * MActor is free software; you can redistribute it and/or modify *
007 * it under the terms of the GNU General Public License as published by *
008 * the Free Software Foundation; either version 2 of the License, or *
009 * (at your option) any later version. *
010 * *
011 * MActor is distributed in the hope that it will be useful, *
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
014 * GNU General Public License for more details. *
015 * *
016 * You should have received a copy of the GNU General Public License *
017 * along with MActor; if not, write to the Free Software *
018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
019 ******************************************************************************/
020 package org.mactor.brokers.http;
021
022 import java.io.ByteArrayOutputStream;
023 import java.io.IOException;
024 import java.io.OutputStreamWriter;
025 import java.util.HashMap;
026 import java.util.Map;
027
028 import org.dom4j.Document;
029
030 /**
031 * Represents a HTTP Reponse
032 *
033 * @author Lars Ivar Almli
034 */
035 public class HttpResponse {
036 byte[] data;
037 Map<String, String> headers = new HashMap<String, String>();
038 public String getHeader(String headerName) {
039 return headers.get(headerName);
040 }
041 public void addHeader(String name, String value) {
042 headers.put(name, value);
043 }
044 public void setData(String data) throws IOException {
045 if (data == null)
046 data = "";
047 ByteArrayOutputStream bos = new ByteArrayOutputStream();
048 OutputStreamWriter w = new OutputStreamWriter(bos);
049 w.write(data);
050 w.flush();
051 setData(bos.toByteArray());
052 }
053 public void setData(Document doc) throws IOException {
054 ByteArrayOutputStream bos = new ByteArrayOutputStream();
055 OutputStreamWriter w = new OutputStreamWriter(bos);
056 doc.write(w);
057 w.flush();
058 setData(bos.toByteArray());
059 }
060 public void setData(byte[] data) {
061 this.data = data;
062 headers.put("Content-Length", this.data.length + "");
063 }
064 public Map<String, String> getHeaders() {
065 return headers;
066 }
067 public byte[] getData() {
068 return data;
069 }
070 }