/*******************************************************************************
* Copyright (c) 2013, 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 v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Geneviève Bastien - Initial API and implementation
*******************************************************************************/
package fr.inria.linuxtools.tmf.core.statesystem;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import fr.inria.linuxtools.statesystem.core.ITmfStateSystem;
import fr.inria.linuxtools.tmf.core.analysis.IAnalysisModule;
/**
* Interface for analysis modules providing state systems.
*
* @author Geneviève Bastien
* @since 3.0
*/
public interface ITmfAnalysisModuleWithStateSystems extends IAnalysisModule {
/**
* Return a specific state system provided by this analysis.
*
* @param id
* The ID of the state system
* @return The state system corresponding to the given ID, null if there is
* no match.
*/
@Nullable
ITmfStateSystem getStateSystem(@NonNull String id);
/**
* Return all the state systems provided by this analysis module, in
* Iterable format.
*
* @return The state systems
*/
@NonNull
Iterable<ITmfStateSystem> getStateSystems();
}