blob: 13c9920952b90e22deac563ee894164eb7aaada9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 École Polytechnique de Montréal
*
* 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:
* Geneviève Bastien - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.analysis.xml.core.module;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.compile.AnalysisCompilationData;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.model.DataDrivenMappingGroup;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.module.IAnalysisDataContainer;
/**
* Interface that all XML defined objects who provide, use or contain state
* system must implement in order to use the state provider model elements in
* {@link org.eclipse.tracecompass.internal.tmf.analysis.xml.core.model} package
*
* @author Geneviève Bastien
*/
public interface IXmlStateSystemContainer extends ITmfXmlTopLevelElement, IAnalysisDataContainer {
/** Root quark, to get values at the root of the state system */
int ROOT_QUARK = -1;
/**
* Error quark, value taken when a state system quark query is in error.
*
* FIXME: Originally in the code, the -1 was used for both root quark and
* return errors, so it has the same value as root quark, but maybe it can
* be changed to something else -2? A quark can never be negative
*/
int ERROR_QUARK = -1;
/**
* Get the compilation data for this analysis. This method should be overridden
* only by the implementations that exist at compile time. It should not be
* called in any other context.
*
* FIXME: This method is there only for the transition between the original
* TmfXml** classes code path to the DataDriven** code path.
*
* @return The analysis compilation data object
*/
default @NonNull AnalysisCompilationData getAnalysisCompilationData() {
throw new UnsupportedOperationException("This method should be overridden by child classes who need those"); //$NON-NLS-1$
}
@Override
default DataDrivenMappingGroup getMappingGroup(String id) {
throw new UnsupportedOperationException("This method should be overridden by child classes who need those"); //$NON-NLS-1$
}
}