Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * Copyright (c) 2001-2011 Convertigo SA.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Affero General Public License
 * as published by the Free Software Foundation; either version 3
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see<http://www.gnu.org/licenses/>.
 *
 * $URL$
 * $Author$
 * $Revision$
 * $Date$
 */

import java.io.File;

import java.io.IOException;

import javax.xml.transform.OutputKeys;

import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;

import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

public class Main {
    private static ThreadLocal<TransformerFactory> defaultTransformerFactory = new ThreadLocal<TransformerFactory>() {
        @Override
        protected TransformerFactory initialValue() {
            return TransformerFactory.newInstance();
        }
    };

    public static void saveXml(Document dom, String filePath) throws IOException {
        saveXml(dom, filePath, false);
    }

    public static void saveXml(Document dom, String filePath, boolean omitXmlDeclaration) throws IOException {
        saveXml(dom, new File(filePath), omitXmlDeclaration);
    }

    public static void saveXml(Document dom, File file) throws IOException {
        saveXml(dom, file, false);
    }

    public static void saveXml(Document dom, File file, boolean omitXmlDeclaration) throws IOException {
        try {
            Transformer transformer = getNewTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
            transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, omitXmlDeclaration ? "yes" : "no");
            transformer.transform(new DOMSource(dom.getDocumentElement()),
                    new StreamResult(file.toURI().getPath()));
        } catch (Exception e) {
            throw new IOException("saveXml failed because : " + e.getMessage());
        }
    }

    public static Transformer getNewTransformer() throws TransformerConfigurationException {
        return defaultTransformerFactory.get().newTransformer();
    }

    public static Transformer getNewTransformer(Source source) throws TransformerConfigurationException {
        return defaultTransformerFactory.get().newTransformer(source);
    }
}