From 0f7bd32608d9dbf4ba2cd53ce31ae83d500414dd Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 25 Jul 2012 15:49:43 +0400 Subject: [PATCH] JetCoreEnvironment does not extend JavaCoreApplicationEnvironment any more Delegation seems more appropriate here. --- .../cli/jvm/compiler/JetCoreEnvironment.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java index b46d4e61364..6a704dcd0f2 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/JetCoreEnvironment.java @@ -53,7 +53,7 @@ import java.util.List; /** * @author yole */ -public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { +public class JetCoreEnvironment { @NotNull public static JetCoreEnvironment createCoreEnvironmentForJS(Disposable disposable, @NotNull CompilerConfiguration configuration) { return new JetCoreEnvironment(disposable, configuration); @@ -64,29 +64,29 @@ public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { return new JetCoreEnvironment(disposable, configuration); } + private final JavaCoreApplicationEnvironment applicationEnvironment; + private final JavaCoreProjectEnvironment projectEnvironment; private final List sourceFiles = new ArrayList(); + private final CoreAnnotationsProvider annotationsProvider; private final CompilerConfiguration configuration; private boolean initialized = false; - private final JavaCoreProjectEnvironment projectEnvironment; - public JetCoreEnvironment(Disposable parentDisposable, @NotNull CompilerConfiguration configuration) { - super(parentDisposable); this.configuration = configuration; - registerFileType(JetFileType.INSTANCE, "kt"); - registerFileType(JetFileType.INSTANCE, "kts"); - registerFileType(JetFileType.INSTANCE, "ktm"); - registerFileType(JetFileType.INSTANCE, JetParser.KTSCRIPT_FILE_SUFFIX); // should be renamed to kts - registerFileType(JetFileType.INSTANCE, "jet"); - registerParserDefinition(new JavaParserDefinition()); - registerParserDefinition(new JetParserDefinition()); - - projectEnvironment = new JavaCoreProjectEnvironment(parentDisposable, this); + this.applicationEnvironment = new JavaCoreApplicationEnvironment(parentDisposable); + applicationEnvironment.registerFileType(JetFileType.INSTANCE, "kt"); + applicationEnvironment.registerFileType(JetFileType.INSTANCE, "kts"); + applicationEnvironment.registerFileType(JetFileType.INSTANCE, "ktm"); + applicationEnvironment.registerFileType(JetFileType.INSTANCE, JetParser.KTSCRIPT_FILE_SUFFIX); // should be renamed to kts + applicationEnvironment.registerFileType(JetFileType.INSTANCE, "jet"); + applicationEnvironment.registerParserDefinition(new JavaParserDefinition()); + applicationEnvironment.registerParserDefinition(new JetParserDefinition()); + projectEnvironment = new JavaCoreProjectEnvironment(parentDisposable, applicationEnvironment); MockProject project = projectEnvironment.getProject(); project.registerService(JetFilesProvider.class, new CliJetFilesProvider(this)); @@ -116,8 +116,9 @@ public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { return configuration; } + @NotNull public MockApplication getApplication() { - return myApplication; + return applicationEnvironment.getApplication(); } @NotNull @@ -139,7 +140,7 @@ public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { } } else { - VirtualFile fileByPath = getLocalFileSystem().findFileByPath(file.getAbsolutePath()); + VirtualFile fileByPath = applicationEnvironment.getLocalFileSystem().findFileByPath(file.getAbsolutePath()); if (fileByPath != null) { PsiFile psiFile = PsiManager.getInstance(getProject()).findFile(fileByPath); if (psiFile instanceof JetFile) { @@ -154,7 +155,7 @@ public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { return; } - VirtualFile vFile = getLocalFileSystem().findFileByPath(path); + VirtualFile vFile = applicationEnvironment.getLocalFileSystem().findFileByPath(path); if (vFile == null) { throw new CompileEnvironmentException("File/directory not found: " + path); } @@ -173,7 +174,7 @@ public class JetCoreEnvironment extends JavaCoreApplicationEnvironment { projectEnvironment.addJarToClassPath(path); } else { - final VirtualFile root = getLocalFileSystem().findFileByPath(path.getAbsolutePath()); + final VirtualFile root = applicationEnvironment.getLocalFileSystem().findFileByPath(path.getAbsolutePath()); if (root == null) { throw new IllegalArgumentException("trying to add non-existing file to classpath: " + path); }