From 8aafeaa4be5b3637316417061ff688c0eca7ac3a Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 7 Feb 2011 19:15:55 +0100 Subject: [PATCH] Modifiable language level in JavaModuleFixtureBuilder --- .../impl/JavaModuleFixtureBuilderImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaModuleFixtureBuilderImpl.java b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaModuleFixtureBuilderImpl.java index 88e506aa05f2..066e61e6370a 100644 --- a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaModuleFixtureBuilderImpl.java +++ b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaModuleFixtureBuilderImpl.java @@ -51,6 +51,7 @@ abstract class JavaModuleFixtureBuilderImpl extends Mod private final List myLibraries = new ArrayList(); private String myJdk; private MockJdkLevel myMockJdkLevel = MockJdkLevel.jdk14; + private LanguageLevel myLanguageLevel = null; public JavaModuleFixtureBuilderImpl(final TestFixtureBuilder fixtureBuilder) { super(StdModuleTypes.JAVA, fixtureBuilder); @@ -61,8 +62,9 @@ abstract class JavaModuleFixtureBuilderImpl extends Mod } @Override - public JavaModuleFixtureBuilder setLanguageLevel(LanguageLevel languageLevel) { - throw new UnsupportedOperationException("setLanguageLevel is not implemented in : " + getClass()); + public JavaModuleFixtureBuilder setLanguageLevel(final LanguageLevel languageLevel) { + myLanguageLevel = languageLevel; + return this; } @Override @@ -144,9 +146,13 @@ abstract class JavaModuleFixtureBuilderImpl extends Mod model.setSdk(new MockJdkWrapper(CompilerConfigurationImpl.getTestsExternalCompilerHome(), jdk)); } - if (myMockJdkLevel == MockJdkLevel.jdk15) { + if (myLanguageLevel != null) { + model.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(myLanguageLevel); + } + else if (myMockJdkLevel == MockJdkLevel.jdk15) { model.getModuleExtension(LanguageLevelModuleExtension.class).setLanguageLevel(LanguageLevel.JDK_1_5); } + model.commit(); for (OrderEntry entry : ModuleRootManager.getInstance(module).getOrderEntries()) { @@ -160,7 +166,7 @@ abstract class JavaModuleFixtureBuilderImpl extends Mod @Override protected void setupRootModel(ModifiableRootModel rootModel) { if (myOutputPath != null) { - new File(myOutputPath).mkdirs(); + assert new File(myOutputPath).mkdirs() : myOutputPath; final VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(myOutputPath); assert virtualFile != null : "cannot find output path: " + myOutputPath; rootModel.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPath(virtualFile); @@ -168,7 +174,7 @@ abstract class JavaModuleFixtureBuilderImpl extends Mod rootModel.getModuleExtension(CompilerModuleExtension.class).setExcludeOutput(false); } if (myTestOutputPath != null) { - new File(myTestOutputPath).mkdirs(); + assert new File(myTestOutputPath).mkdirs() : myTestOutputPath; final VirtualFile virtualFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(myTestOutputPath); assert virtualFile != null : "cannot find test output path: " + myTestOutputPath; rootModel.getModuleExtension(CompilerModuleExtension.class).setCompilerOutputPathForTests(virtualFile);