/*******************************************************************************
* Copyright (c) 2010 Thiago Tonelli Bartolomei.
* 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:
* Thiago Tonelli Bartolomei - initial API and implementation
******************************************************************************/
package ca.uwaterloo.gsd.fsml.javaMappingInterpreter.analysis;
import ca.uwaterloo.gsd.fsml.javaMappingInterpreter.IJavaContextManager;
/**
* This interface declares access methods for managers used during analysis.
*
* @author Thiago Tonelli Bartolomei <ttonelli@gsd.uwaterloo.ca>
*/
public interface IAnalysisManagers {
/**
* Gets the java AST manager being used in the analysis
*
* @return the java AST manager
*/
public IJavaASTManager getJavaASTManager();
/**
* Gets the hierarchical call graph manager being used in the analysis
*
* @return the HierarchicalCallGraphManager
*/
public IHierarchicalCallGraphManager getHierarchicalCallGraphManager();
/**
* Gets the java context manager being used in the analysis
*
* @return the java context manager
*/
public IJavaContextManager getJavaContextManager();
/**
* Gets the java implVariant manager being used in the analysis
*
* @return the java implVariant manager
*/
public IJavaImplVariantManager getJavaImplVariantManager();
/**
* Gets the incremental type hierarchy being used in the analysis
*
* @return the incremental type hierarchy
*/
public IIncrementalTypeHierarchy getTypeHierarchy();
/**
* Called before starting the analysis, so that all managers have a chance to initialize
*/
public void init();
/**
* Tear down for all the managers
*/
public void finish();
}