java/alt2xml-out-xml/src/cz/frantovo/alt2xml/out/xml/XMLActionFactory.java
author František Kučera <franta-hg@frantovo.cz>
Thu, 24 Oct 2019 21:56:03 +0200
changeset 111 e4900596abdb
parent 43 058c1c39251e
permissions -rw-r--r--
fix license version: GNU GPLv3
     1 /**
     2  * Alt2XML
     3  * Copyright © 2014 František Kučera (frantovo.cz)
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 3 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    16  */
    17 package cz.frantovo.alt2xml.out.xml;
    18 
    19 import cz.frantovo.alt2xml.out.Action;
    20 import cz.frantovo.alt2xml.out.ActionContext;
    21 import cz.frantovo.alt2xml.out.ActionFactory;
    22 import cz.frantovo.alt2xml.out.OutputActionException;
    23 import javax.xml.stream.XMLOutputFactory;
    24 import javax.xml.stream.XMLStreamException;
    25 import javax.xml.stream.XMLStreamWriter;
    26 
    27 /**
    28  * Prints XML.
    29  *
    30  * @author Ing. František Kučera (frantovo.cz)
    31  */
    32 public class XMLActionFactory implements ActionFactory {
    33 
    34 	private XMLOutputFactory xmlOutputFactory;
    35 
    36 	@Override
    37 	public String getActionCode() {
    38 		return "xml";
    39 	}
    40 
    41 	@Override
    42 	public Action getAction(ActionContext context) throws OutputActionException {
    43 		try {
    44 			XMLStreamWriter writer = getXmlOutputFactory().createXMLStreamWriter(context.getOutputStream());
    45 			return new XMLAction(context, writer);
    46 		} catch (XMLStreamException e) {
    47 			throw new OutputActionException("Unable to create XMLStreamWriter", e);
    48 		}
    49 	}
    50 
    51 	private XMLOutputFactory getXmlOutputFactory() {
    52 		if (xmlOutputFactory == null) {
    53 			xmlOutputFactory = XMLOutputFactory.newFactory();
    54 		}
    55 		return xmlOutputFactory;
    56 	}
    57 
    58 }