01: /*
02: * Copyright 2007 Pentaho Corporation. All rights reserved.
03: * This software was developed by Pentaho Corporation and is provided under the terms
04: * of the Mozilla Public License, Version 1.1, or any later version. You may not use
05: * this file except in compliance with the license. If you need a copy of the license,
06: * please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
07: * BI Platform. The Initial Developer is Pentaho Corporation.
08: *
09: * Software distributed under the Mozilla Public License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
11: * the license for the specific language governing your rights and limitations.
12: */
13: package org.pentaho.core.services;
14:
15: import java.io.ByteArrayInputStream;
16: import java.io.ByteArrayOutputStream;
17: import java.io.InputStream;
18:
19: public class BufferedContentItem extends SimpleContentItem {
20:
21: private ByteArrayOutputStream outputStream;
22:
23: private InputStream inputStream;
24:
25: private IContentListener listener;
26:
27: public BufferedContentItem(IContentListener listener) {
28: super ();
29: this .listener = listener;
30: outputStream = new ByteArrayOutputStream();
31: inputStream = null;
32: setOutputStream(outputStream);
33: }
34:
35: public void closeOutputStream() {
36:
37: inputStream = new ByteArrayInputStream(outputStream
38: .toByteArray());
39: if (listener != null) {
40: listener.close();
41: }
42: }
43:
44: public InputStream getInputStream() {
45: return inputStream;
46: }
47:
48: public void setMimeType(String mimeType) {
49: super.setMimeType(mimeType);
50: listener.setMimeType(mimeType);
51: }
52:
53: }
|