<s> package org . eclipse . jdt . core ; import org . eclipse . core . runtime . IProgressMonitor ; import org . eclipse . jdt . core . dom . ASTParser ; import org . eclipse . jdt . core . dom . CompilationUnit ; import org . eclipse . jdt . core . dom . AST ; import org . eclipse . jdt . core . dom . IBinding ; import org . eclipse . text . edits . TextEdit ; import org . eclipse . text . edits . UndoEdit ; public interface ICompilationUnit extends ITypeRoot , IWorkingCopy , ISourceManipulation { public static final int NO_AST = 0 ; public static final int FORCE_PROBLEM_DETECTION = 0x01 ; public static final int ENABLE_STATEMENTS_RECOVERY = 0x02 ; public static final int ENABLE_BINDINGS_RECOVERY = 0x04 ; public static final int IGNORE_METHOD_BODIES = 0x08 ; public UndoEdit applyTextEdit ( TextEdit edit , IProgressMonitor monitor ) throws JavaModelException ; void becomeWorkingCopy ( IProblemRequestor problemRequestor , IProgressMonitor monitor ) throws JavaModelException ; void becomeWorkingCopy ( IProgressMonitor monitor ) throws JavaModelException ; void commitWorkingCopy ( boolean force , IProgressMonitor monitor ) throws JavaModelException ; IImportDeclaration createImport ( String name , IJavaElement sibling , IProgressMonitor monitor ) throws JavaModelException ; IImportDeclaration createImport ( String name , IJavaElement sibling , int flags , IProgressMonitor monitor ) throws JavaModelException ; IPackageDeclaration createPackageDeclaration ( String name , IProgressMonitor monitor ) throws JavaModelException ; IType createType ( String contents , IJavaElement sibling , boolean force , IProgressMonitor monitor ) throws JavaModelException ; void discardWorkingCopy ( ) throws JavaModelException ; IJavaElement [ ] findElements ( IJavaElement element ) ; ICompilationUnit findWorkingCopy ( WorkingCopyOwner owner ) ; IType [ ] getAllTypes ( ) throws JavaModelException ; IImportDeclaration getImport ( String name ) ; IImportContainer getImportContainer ( ) ; IImportDeclaration [ ] getImports ( ) throws JavaModelException ; ICompilationUnit getPrimary ( ) ; WorkingCopyOwner getOwner ( ) ; IPackageDeclaration getPackageDeclaration ( String name ) ; IPackageDeclaration [ ] getPackageDeclarations ( ) throws JavaModelException ; IType getType ( String name ) ; IType [ ] getTypes ( ) throws JavaModelException ; ICompilationUnit getWorkingCopy ( IProgressMonitor monitor ) throws JavaModelException ; ICompilationUnit getWorkingCopy ( WorkingCopyOwner owner , IProblemRequestor problemRequestor , IProgressMonitor monitor ) throws JavaModelException ; public boolean hasResourceChanged ( ) ; boolean isWorkingCopy ( ) ; CompilationUnit reconcile ( int astLevel , boolean forceProblemDetection , WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException ; CompilationUnit reconcile ( int astLevel , boolean forceProblemDetection , boolean enableStatementsRecovery , WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException ; CompilationUnit reconcile ( int astLevel , int reconcileFlags , WorkingCopyOwner owner , IProgressMonitor monitor ) throws JavaModelException ; void restore ( ) throws JavaModelException ; } </s>