SourceDataSourcepublic class SourceDataSource extends Object implements DataSource
Fields Summary |
---|
public static final String | CONTENT_TYPE | private final String | name | private final String | contentType | private byte[] | data | private ByteArrayOutputStream | os |
Constructors Summary |
---|
public SourceDataSource(String name, StreamSource data)
this(name, CONTENT_TYPE, data);
| public SourceDataSource(String name, String contentType, StreamSource data)
this.name = name;
this.contentType = contentType == null ? CONTENT_TYPE : contentType;
os = new ByteArrayOutputStream();
try {
if (data != null) {
// Try the Reader first
Reader reader = data.getReader();
if (reader != null) {
reader = new BufferedReader(reader);
int ch;
while ((ch = reader.read())!=-1) {
os.write(ch);
}
} else {
// Try the InputStream
InputStream is = data.getInputStream();
if (is == null) {
// Try the URL
String id = data.getSystemId();
if (id != null) {
URL url = new URL(id);
is = url.openStream();
}
}
if (is != null) {
is = new BufferedInputStream(is);
// If reading from a socket or URL, we could get a partial read.
byte[] bytes = null;
int avail;
while ((avail = is.available()) > 0) {
if (bytes == null || avail > bytes.length)
bytes = new byte[avail];
is.read(bytes, 0, avail);
os.write(bytes, 0, avail);
}
}
}
}
} catch (Exception e) {
// Is this sufficient?
}
|
Methods Summary |
---|
public java.lang.String | getContentType()
return contentType;
| public java.io.InputStream | getInputStream()
if (os.size() != 0) {
data = os.toByteArray();
os.reset();
}
return new ByteArrayInputStream(data == null ? new byte[0] : data);
| public java.lang.String | getName()
return name;
| public java.io.OutputStream | getOutputStream()
if (os.size() != 0) {
data = os.toByteArray();
os.reset();
}
return os;
|
|