/*******************************************************************************
* Copyright (c) 2015 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
*******************************************************************************/
package org.eclipse.tracecompass.internal.ctf.core.event.metadata;
import org.antlr.runtime.tree.CommonTree;
import org.eclipse.jdt.annotation.NonNull;
/**
* Common tree parser interface. Should only have one method
* {@link #parse(CommonTree, ICommonTreeParserParameter)}
*
* It is recommended to add to the javadoc on this inerface as it is not
* specific
*
* @author Matthew Khouzam
*
*/
public interface ICommonTreeParser {
/**
* Parameter object to avoid passing "Object" as a parameter
* @author Matthew Khouzam
*
*/
public interface ICommonTreeParserParameter{
}
/**
* The only parse method of the common tree parser. Caution must be used
* handling this as it can return any type and thus care must be used with
* the input and output.
*
*
* @param tree
* the common tree input
* @param param
* the parameter to pass (for lookups)
* @return the parsed data
* @throws ParseException
* if the tree or data is wrong
*/
@NonNull
Object parse(CommonTree tree, ICommonTreeParserParameter param) throws ParseException;
}