001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.camel.converter.jaxp;
018    
019    import java.io.InputStream;
020    import java.io.OutputStream;
021    import java.io.Reader;
022    import java.io.Writer;
023    
024    import javax.xml.stream.XMLEventReader;
025    import javax.xml.stream.XMLEventWriter;
026    import javax.xml.stream.XMLInputFactory;
027    import javax.xml.stream.XMLOutputFactory;
028    import javax.xml.stream.XMLStreamException;
029    import javax.xml.stream.XMLStreamReader;
030    import javax.xml.stream.XMLStreamWriter;
031    import javax.xml.transform.Result;
032    import javax.xml.transform.Source;
033    
034    import org.apache.camel.Converter;
035    
036    /**
037     * A converter of StAX objects
038     *
039     * @version $Revision: 382 $
040     */
041    @Converter
042    public class StaxConverter {
043        private XMLInputFactory inputFactory;
044        private XMLOutputFactory outputFactory;
045    
046        @Converter
047        public XMLEventWriter createXMLEventWriter(OutputStream out) throws XMLStreamException {
048            return getOutputFactory().createXMLEventWriter(out);
049        }
050    
051        @Converter
052        public XMLEventWriter createXMLEventWriter(Writer writer) throws XMLStreamException {
053            return getOutputFactory().createXMLEventWriter(writer);
054        }
055    
056        @Converter
057        public XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException {
058            return getOutputFactory().createXMLEventWriter(result);
059        }
060    
061        @Converter
062        public XMLStreamWriter createXMLStreamWriter(OutputStream outputStream) throws XMLStreamException {
063            return getOutputFactory().createXMLStreamWriter(outputStream);
064        }
065    
066        @Converter
067        public XMLStreamWriter createXMLStreamWriter(Writer writer) throws XMLStreamException {
068            return getOutputFactory().createXMLStreamWriter(writer);
069        }
070    
071        @Converter
072        public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException {
073            return getOutputFactory().createXMLStreamWriter(result);
074        }
075    
076        @Converter
077        public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException {
078            return getInputFactory().createXMLStreamReader(in);
079        }
080    
081        @Converter
082        public XMLStreamReader createXMLStreamReader(Reader in) throws XMLStreamException {
083            return getInputFactory().createXMLStreamReader(in);
084        }
085    
086        @Converter
087        public XMLStreamReader createXMLStreamReader(Source in) throws XMLStreamException {
088            return getInputFactory().createXMLStreamReader(in);
089        }
090    
091        @Converter
092        public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException {
093            return getInputFactory().createXMLEventReader(in);
094        }
095    
096        @Converter
097        public XMLEventReader createXMLEventReader(Reader in) throws XMLStreamException {
098            return getInputFactory().createXMLEventReader(in);
099        }
100    
101        @Converter
102        public XMLEventReader createXMLEventReader(XMLStreamReader in) throws XMLStreamException {
103            return getInputFactory().createXMLEventReader(in);
104        }
105    
106        @Converter
107        public XMLEventReader createXMLEventReader(Source in) throws XMLStreamException {
108            return getInputFactory().createXMLEventReader(in);
109        }
110    
111        // Properties
112        //-------------------------------------------------------------------------
113    
114        public XMLInputFactory getInputFactory() {
115            if (inputFactory == null) {
116                inputFactory = XMLInputFactory.newInstance();
117            }
118            return inputFactory;
119        }
120    
121        public void setInputFactory(XMLInputFactory inputFactory) {
122            this.inputFactory = inputFactory;
123        }
124    
125        public XMLOutputFactory getOutputFactory() {
126            if (outputFactory == null) {
127                outputFactory = XMLOutputFactory.newInstance();
128            }
129            return outputFactory;
130        }
131    
132        public void setOutputFactory(XMLOutputFactory outputFactory) {
133            this.outputFactory = outputFactory;
134        }
135    }