public InputStream getAsStream() { try { return new StringInputStream(m_payload, (m_streamCharset != null && !m_streamCharset.equals("")) ? m_streamCharset : "UTF-8"); } catch (UnsupportedEncodingException e) { LOG.error("Cannot encode as stream", e); return new ByteArrayInputStream(m_payload.getBytes()); } }
public StringInputStream(String content, Charset charset) { m_content = content; initEncoder(charset); initBuffers(); }
public int read() throws IOException { try { try { byte b = m_byteBuffer.get(); if (b != 0) { return b; } } catch (Exception e) { // TODO: ignored? } m_byteBuffer.position(0); Arrays.fill(m_byteBuffer.array(), (byte) 0); m_charBuffer.position(0); fillCharBuffer(); m_charBuffer.position(0); m_charsetEncoder.encode(m_charBuffer, m_byteBuffer, false); m_byteBuffer.position(0); byte b = m_byteBuffer.get(); if (b != 0) { return b; } return -1; } catch (IndexOutOfBoundsException e) { return -1; } }
@Override public InputStream asStream(String mimeType) { String charset = StringUtils.getCharsetFromContentType(mimeType); if (charset == null) { charset = defaultCharset; } try { return new StringInputStream(content, charset); } catch (UnsupportedEncodingException e) { throw new IllegalStateException("unknown encoding: " + e); } } }
public StringInputStream(String pContent, String pCharset) throws UnsupportedEncodingException { if (pCharset == null) { pCharset = Charset.defaultCharset().name(); } Charset charset; try { charset = Charset.forName(pCharset); } catch (UnsupportedCharsetException e) { throw new UnsupportedEncodingException(e.getCharsetName()); } m_content = pContent; initEncoder(charset); initBuffers(); }