/*******************************************************************************
* Copyright (c) 2010, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Yuriy Vashchuk (yvashchuk@gmail.com) - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.filter.xml;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import org.eclipse.tracecompass.tmf.core.filter.model.ITmfFilterTreeNode;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
/**
* The SAX based XML parser
*
* @version 1.0
* @author Yuriy Vashchuk
* @author Patrick Tasse
*/
public class TmfFilterXMLParser {
private static ITmfFilterTreeNode fRoot = null;
/**
* The XMLParser constructor
*
* @param uri The XML file to parse
* @throws SAXException SAX exception
* @throws IOException IO exception
*/
public TmfFilterXMLParser(final String uri) throws SAXException, IOException {
SAXParserFactory m_parserFactory = null;
m_parserFactory = SAXParserFactory.newInstance();
m_parserFactory.setNamespaceAware(true);
XMLReader saxReader = null;
try {
saxReader = m_parserFactory.newSAXParser().getXMLReader();
saxReader.setContentHandler(new TmfFilterContentHandler());
saxReader.parse(uri);
fRoot = ((TmfFilterContentHandler) saxReader.getContentHandler()).getTree();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
/**
* Getter of tree
*
* @return The builded tree
*/
public ITmfFilterTreeNode getTree() {
return fRoot;
}
}