mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Made deprecation more selective.
This commit is contained in:
parent
13cdc9a116
commit
51c07a5131
1 changed files with 61 additions and 59 deletions
|
@ -38,69 +38,10 @@ import org.eclipse.cdt.internal.ui.refactoring.Container;
|
||||||
* A collection of methods that deal with IASTTranslationUnits.
|
* A collection of methods that deal with IASTTranslationUnits.
|
||||||
*
|
*
|
||||||
* @author Mirko Stocker
|
* @author Mirko Stocker
|
||||||
* @deprecated Use RefactoringASTCache.
|
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
|
||||||
public class TranslationUnitHelper {
|
public class TranslationUnitHelper {
|
||||||
private static final int AST_STYLE = ITranslationUnit.AST_CONFIGURE_USING_SOURCE_CONTEXT | ITranslationUnit.AST_SKIP_INDEXED_HEADERS;
|
private static final int AST_STYLE = ITranslationUnit.AST_CONFIGURE_USING_SOURCE_CONTEXT | ITranslationUnit.AST_SKIP_INDEXED_HEADERS;
|
||||||
|
|
||||||
/**
|
|
||||||
* @param filename to load the translation unit from
|
|
||||||
* @return the translation unit for the file or null
|
|
||||||
* @throws CoreException
|
|
||||||
*/
|
|
||||||
public static IASTTranslationUnit loadTranslationUnit(String filename, boolean useIndex) throws CoreException{
|
|
||||||
if (filename != null) {
|
|
||||||
IFile[] tmpFile = null;
|
|
||||||
|
|
||||||
tmpFile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(
|
|
||||||
URIUtil.toURI(filename));
|
|
||||||
|
|
||||||
return loadTranslationUnit(tmpFile[0], useIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param file to load the translation unit from
|
|
||||||
* @return the translation unit for the file or null
|
|
||||||
* @throws CoreException
|
|
||||||
*/
|
|
||||||
public static IASTTranslationUnit loadTranslationUnit(IFile file, boolean useIndex) throws CoreException {
|
|
||||||
if (file == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (useIndex) {
|
|
||||||
return loadIndexBasedTranslationUnit(file);
|
|
||||||
} else {
|
|
||||||
return loadFileBasedTranslationUnit(file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IASTTranslationUnit loadFileBasedTranslationUnit(IFile file) {
|
|
||||||
try {
|
|
||||||
IASTTranslationUnit fileUnit = CDOM.getInstance().getTranslationUnit(file, CDOM.getInstance().getCodeReaderFactory(CDOM.PARSE_SAVED_RESOURCES), true);
|
|
||||||
return fileUnit;
|
|
||||||
} catch (UnsupportedDialectException e) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IASTTranslationUnit loadIndexBasedTranslationUnit(IFile file) throws CoreException {
|
|
||||||
IIndex index = null;
|
|
||||||
try {
|
|
||||||
index = lockIndex();
|
|
||||||
ITranslationUnit tu = (ITranslationUnit) CCorePlugin.getDefault().getCoreModel().create(file);
|
|
||||||
return tu.getAST(index, AST_STYLE);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
CUIPlugin.log(e);
|
|
||||||
} finally {
|
|
||||||
unlockIndex(index);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Visits all names in the TU to find the specified name
|
* Visits all names in the TU to find the specified name
|
||||||
*/
|
*/
|
||||||
|
@ -146,6 +87,67 @@ public class TranslationUnitHelper {
|
||||||
return firstNode;
|
return firstNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param filename to load the translation unit from
|
||||||
|
* @return the translation unit for the file or null
|
||||||
|
* @throws CoreException
|
||||||
|
* @deprecated Use RefactoringASTCache.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static IASTTranslationUnit loadTranslationUnit(String filename, boolean useIndex) throws CoreException{
|
||||||
|
if (filename != null) {
|
||||||
|
IFile[] tmpFile = null;
|
||||||
|
|
||||||
|
tmpFile = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(
|
||||||
|
URIUtil.toURI(filename));
|
||||||
|
|
||||||
|
return loadTranslationUnit(tmpFile[0], useIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param file to load the translation unit from
|
||||||
|
* @return the translation unit for the file or null
|
||||||
|
* @throws CoreException
|
||||||
|
* @deprecated Use RefactoringASTCache.
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static IASTTranslationUnit loadTranslationUnit(IFile file, boolean useIndex) throws CoreException {
|
||||||
|
if (file == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (useIndex) {
|
||||||
|
return loadIndexBasedTranslationUnit(file);
|
||||||
|
} else {
|
||||||
|
return loadFileBasedTranslationUnit(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IASTTranslationUnit loadFileBasedTranslationUnit(IFile file) {
|
||||||
|
try {
|
||||||
|
IASTTranslationUnit fileUnit = CDOM.getInstance().getTranslationUnit(file, CDOM.getInstance().getCodeReaderFactory(CDOM.PARSE_SAVED_RESOURCES), true);
|
||||||
|
return fileUnit;
|
||||||
|
} catch (UnsupportedDialectException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IASTTranslationUnit loadIndexBasedTranslationUnit(IFile file) throws CoreException {
|
||||||
|
IIndex index = null;
|
||||||
|
try {
|
||||||
|
index = lockIndex();
|
||||||
|
ITranslationUnit tu = (ITranslationUnit) CCorePlugin.getDefault().getCoreModel().create(file);
|
||||||
|
return tu.getAST(index, AST_STYLE);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
CUIPlugin.log(e);
|
||||||
|
} finally {
|
||||||
|
unlockIndex(index);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private static IIndex lockIndex() throws CoreException, InterruptedException {
|
private static IIndex lockIndex() throws CoreException, InterruptedException {
|
||||||
IIndex index;
|
IIndex index;
|
||||||
ICProject[] projects= CoreModel.getDefault().getCModel().getCProjects();
|
ICProject[] projects= CoreModel.getDefault().getCModel().getCProjects();
|
||||||
|
|
Loading…
Add table
Reference in a new issue