public static Source getNewSource()

in itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java [61:136]


    public static Source getNewSource(Source src) {
        Source ret = null;
        if(src instanceof DOMSource) {
            DOMSource dsrc = (DOMSource)src;
            ret = new DOMSource(dsrc.getNode() != null ? dsrc.getNode().cloneNode(true) : null);
        } else if(src instanceof SAXSource) {
            SAXSource ssrc = (SAXSource)src;
            if(ssrc.getInputSource().getByteStream() != null) {
                InputStream inp = ssrc.getInputSource().getByteStream();
                ByteArrayOutputStream bout = new ByteArrayOutputStream();
                int b;
                try {
                    while((b = inp.read()) != -1) {
                        bout.write(b);
                    }
                } catch (IOException ignored) {
                }
                try { bout.close();} catch (IOException ignored) {}
                try { inp.reset();} catch (IOException ignored) {}
                ret = new SAXSource(new InputSource(new ByteArrayInputStream(bout.toByteArray())));
            } else if(ssrc.getInputSource().getCharacterStream() != null) {
                Reader rdr = ssrc.getInputSource().getCharacterStream();
                CharArrayWriter caw = new CharArrayWriter();
                try {
                    int c;
                    while((c = rdr.read()) != -1) {
                        caw.append((char)c);
                    }
                } catch (IOException ignored) {
                }
                caw.close();
                try{ rdr.reset();} catch(IOException ignored) {}
                ret = new SAXSource(new InputSource(new CharArrayReader(caw.toCharArray())));
            } else {
                ret = new SAXSource();
            }
        } else if(src instanceof StreamSource) {
            StreamSource ssrc = (StreamSource)src;
            if(ssrc.getInputStream() != null) {
                InputStream inp = ssrc.getInputStream();
                ByteArrayOutputStream bout = new ByteArrayOutputStream();
                int b;
                try {
                    while((b = inp.read()) != -1) {
                        bout.write(b);
                    }
                } catch (IOException ignored) {
                }
                try { bout.close();} catch (IOException ignored) {}
                try { inp.reset();} catch (IOException ignored) {}
                ret = new StreamSource(new ByteArrayInputStream(bout.toByteArray()));
            } else if(ssrc.getReader() != null) {
                Reader rdr = ssrc.getReader();
                CharArrayWriter caw = new CharArrayWriter();
                try {
                    int c;
                    while((c = rdr.read()) != -1) {
                        caw.append((char)c);
                    }
                } catch (IOException ignored) {
                }
                caw.close();
                try{ rdr.reset();} catch(IOException ignored) {}
                ret = new StreamSource(new CharArrayReader(caw.toCharArray()));
            } else {
                ret = new StreamSource();
            }
        }
        
        if(ret != null) {
            ret.setSystemId(src.getSystemId());
        } else {
            ret = src;
        }
        return ret;
    }