blob: 994b7bcbe06f08105c06533cc95012d72d8ffa12 [file] [log] [blame]
/*******************************************************************************
* 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 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* 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.common.core.xml.XmlUtils;
import org.eclipse.tracecompass.internal.tmf.core.Activator;
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 {
XMLReader saxReader = null;
try {
SAXParserFactory m_parserFactory = XmlUtils.newSafeSaxParserFactory();
saxReader = m_parserFactory.newSAXParser().getXMLReader();
saxReader.setContentHandler(new TmfFilterContentHandler());
saxReader.parse(uri);
fRoot = ((TmfFilterContentHandler) saxReader.getContentHandler()).getTree();
} catch (ParserConfigurationException e) {
Activator.logError("Error to parse the configuration ", e); //$NON-NLS-1$
}
}
/**
* Getter of tree
*
* @return The builded tree
*/
public ITmfFilterTreeNode getTree() {
return fRoot;
}
}