From cef469715d04d253fd30afc06666176ae1639b8d Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Tue, 13 Nov 2012 14:01:06 +0100 Subject: [PATCH] Fix deprecated method usages --- .../ExternalAnnotationsManagerImpl.java | 14 ++++----- .../JavaCreateFromTemplateHandler.java | 7 +++-- .../extractclass/ExtractClassProcessor.java | 6 ++-- .../IntroduceParameterObjectProcessor.java | 6 ++-- ...eplaceConstructorWithBuilderProcessor.java | 18 ++++++------ .../WrapReturnValueProcessor.java | 6 ++-- .../com/intellij/psi/AddClassToFileTest.java | 22 +++++++++++++- .../intellij/psi/ClsRepositoryUseTest.java | 3 +- .../intellij/psi/search/UpdateCacheTest.java | 3 +- .../daemon/DaemonAnalyzerTestCase.java | 29 ++++++++++--------- .../intellij/testFramework/PsiTestCase.java | 7 +++-- .../impl/JavaCodeInsightTestFixtureImpl.java | 6 ++-- .../src/com/intellij/psi/PsiFileFactory.java | 21 +++++++------- .../daemon/quickFix/CreateFileFix.java | 7 +++-- .../DefaultCreateFromTemplateHandler.java | 7 +++-- .../internal/psiView/PsiViewerDialog.java | 2 +- .../vcs/checkin/TodoCheckinHandlerWorker.java | 4 +-- .../manipulators/PsiCommentManipulator.java | 10 +++---- .../intellij/testFramework/PsiTestUtil.java | 2 +- 19 files changed, 112 insertions(+), 68 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java index 6c1e2df370bb..e99af2bf9d0a 100644 --- a/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/ExternalAnnotationsManagerImpl.java @@ -13,11 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * User: anna - * Date: 26-Jun-2007 - */ package com.intellij.codeInsight; import com.intellij.CommonBundle; @@ -25,6 +20,7 @@ import com.intellij.ProjectTopics; import com.intellij.codeInsight.highlighting.HighlightManager; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; +import com.intellij.ide.highlighter.XmlFileType; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; @@ -84,6 +80,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +/** + * @author anna + * @since 26-Jun-2007 + */ public class ExternalAnnotationsManagerImpl extends BaseExternalAnnotationsManager { private static final Logger LOG = Logger.getInstance("#" + ExternalAnnotationsManagerImpl.class.getName()); @@ -650,8 +650,8 @@ public class ExternalAnnotationsManagerImpl extends BaseExternalAnnotationsManag } try { - return (XmlFile)directory - .add(PsiFileFactory.getInstance(myPsiManager.getProject()).createFileFromText(ANNOTATIONS_XML, "")); + final PsiFileFactory factory = PsiFileFactory.getInstance(myPsiManager.getProject()); + return (XmlFile)directory.add(factory.createFileFromText(ANNOTATIONS_XML, XmlFileType.INSTANCE, "")); } catch (IncorrectOperationException e) { LOG.error(e); diff --git a/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java b/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java index 6c130ec472d1..d726cea50e18 100644 --- a/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java +++ b/java/java-impl/src/com/intellij/ide/fileTemplates/JavaCreateFromTemplateHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package com.intellij.ide.fileTemplates; import com.intellij.ide.IdeBundle; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.FileTypeRegistry; import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; import com.intellij.openapi.project.Project; @@ -38,7 +39,9 @@ public class JavaCreateFromTemplateHandler implements CreateFromTemplateHandler boolean reformat, String extension) throws IncorrectOperationException { if (extension == null) extension = StdFileTypes.JAVA.getDefaultExtension(); - final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("myclass" + "." + extension, content); + final String name = "myClass" + "." + extension; + final FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(name); + final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText(name, type, content); if (!(psiFile instanceof PsiJavaFile)){ throw new IncorrectOperationException("This template did not produce a Java class or an interface\n"+psiFile.getText()); } diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java index a1e034050cc2..05490b82d821 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package com.intellij.refactoring.extractclass; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.util.PackageUtil; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; @@ -683,7 +684,8 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor { directory = PackageUtil.findOrCreateDirectoryForPackage(module, newPackageName, containingDirectory, false, true); } if (directory != null) { - final PsiFile newFile = PsiFileFactory.getInstance(project).createFileFromText(newClassName + ".java", classString); + final PsiFileFactory factory = PsiFileFactory.getInstance(project); + final PsiFile newFile = factory.createFileFromText(newClassName + ".java", JavaFileType.INSTANCE, classString); final PsiElement addedFile = directory.add(newFile); final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject()); final PsiElement shortenedFile = JavaCodeStyleManager.getInstance(project).shortenClassReferences(addedFile); diff --git a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java index 1c9c57ac68d9..bcd84bdc2a86 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/IntroduceParameterObjectProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package com.intellij.refactoring.introduceparameterobject; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.util.PackageUtil; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; @@ -272,7 +273,8 @@ public class IntroduceParameterObjectProcessor extends FixableUsagesRefactoringP final String classString = beanClassBuilder.buildBeanClass(); try { - final PsiJavaFile newFile = (PsiJavaFile)PsiFileFactory.getInstance(method.getProject()).createFileFromText(className + ".java", classString); + final PsiFileFactory factory = PsiFileFactory.getInstance(method.getProject()); + final PsiJavaFile newFile = (PsiJavaFile)factory.createFileFromText(className + ".java", JavaFileType.INSTANCE, classString); if (myCreateInnerClass) { final PsiClass containingClass = method.getContainingClass(); final PsiClass[] classes = newFile.getClasses(); diff --git a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java index e5bd42743749..d8fe6c84fb03 100644 --- a/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/replaceConstructorWithBuilder/ReplaceConstructorWithBuilderProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,13 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * User: anna - * Date: 04-Sep-2008 - */ package com.intellij.refactoring.replaceConstructorWithBuilder; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.util.PackageUtil; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; @@ -54,6 +50,10 @@ import java.util.Collections; import java.util.List; import java.util.Map; +/** + * @author anna + * @since 04-Sep-2008 + */ public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefactoringProcessor { public static final String REFACTORING_NAME = "Replace Constructor with Builder"; private final PsiMethod[] myConstructors; @@ -105,12 +105,12 @@ public class ReplaceConstructorWithBuilderProcessor extends FixableUsagesRefacto @Nullable private PsiClass createBuilderClass() { - final PsiClass psiClass = myConstructors[0].getContainingClass(); assert psiClass != null; final PsiTypeParameterList typeParameterList = psiClass.getTypeParameterList(); - final PsiJavaFile newFile = (PsiJavaFile)PsiFileFactory.getInstance(myProject) - .createFileFromText(myClassName + ".java", "public class " + myClassName + (typeParameterList != null ? typeParameterList.getText() : "") + "{}"); + final String text = "public class " + myClassName + (typeParameterList != null ? typeParameterList.getText() : "") + "{}"; + final PsiFileFactory factory = PsiFileFactory.getInstance(myProject); + final PsiJavaFile newFile = (PsiJavaFile)factory.createFileFromText(myClassName + ".java", JavaFileType.INSTANCE, text); final PsiFile containingFile = myConstructors[0].getContainingFile(); final PsiDirectory containingDirectory = containingFile.getContainingDirectory(); diff --git a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java index d59035dab136..7e9b37f6d8fd 100644 --- a/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/wrapreturnvalue/WrapReturnValueProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package com.intellij.refactoring.wrapreturnvalue; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.util.PackageUtil; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; @@ -265,7 +266,8 @@ public class WrapReturnValueProcessor extends FixableUsagesRefactoringProcessor } try { - final PsiJavaFile psiFile = (PsiJavaFile)PsiFileFactory.getInstance(project).createFileFromText(className + ".java", classString); + final PsiFileFactory factory = PsiFileFactory.getInstance(project); + final PsiJavaFile psiFile = (PsiJavaFile)factory.createFileFromText(className + ".java", JavaFileType.INSTANCE, classString); final CodeStyleManager codeStyleManager = CodeStyleManager.getInstance(manager.getProject()); if (myCreateInnerClass) { final PsiClass containingClass = method.getContainingClass(); diff --git a/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java b/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java index 03f7c1111ae9..f41efd5de2ff 100644 --- a/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/AddClassToFileTest.java @@ -1,5 +1,21 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.psi; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.impl.LoadTextUtil; @@ -13,6 +29,7 @@ public class AddClassToFileTest extends PsiTestCase{ public void test() throws Exception { VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete); PsiDirectory dir = myPsiManager.findDirectory(root); + assertNotNull(dir); PsiFile file = dir.createFile("AAA.java"); PsiClass aClass = myJavaFacade.getElementFactory().createClass("AAA"); file.add(aClass); @@ -24,13 +41,16 @@ public class AddClassToFileTest extends PsiTestCase{ VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete); VirtualFile pkg = root.createChildDirectory(this, "foo"); PsiDirectory dir = myPsiManager.findDirectory(pkg); + assertNotNull(dir); String text = "package foo;\n\nclass A {}"; - PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", text)); + PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", JavaFileType.INSTANCE, text)); VirtualFile virtualFile = created.getContainingFile().getVirtualFile(); + assertNotNull(virtualFile); String fileText = LoadTextUtil.loadText(virtualFile).toString(); assertEquals(text, fileText); Document doc = FileDocumentManager.getInstance().getDocument(virtualFile); + assertNotNull(doc); assertFalse(FileDocumentManager.getInstance().isDocumentUnsaved(doc)); assertFalse(FileDocumentManager.getInstance().isFileModified(virtualFile)); } diff --git a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java index 1cfbef616f74..b7e517502222 100644 --- a/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/ClsRepositoryUseTest.java @@ -15,6 +15,7 @@ */ package com.intellij.psi; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.diagnostic.Logger; @@ -599,7 +600,7 @@ public class ClsRepositoryUseTest extends PsiTestCase { "class Dummy {\n" + " { Map list = new HashMap();}\n" + "}"; - PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("Dummy.java", text); + PsiJavaFile file = (PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("Dummy.java", JavaFileType.INSTANCE, text); PsiDeclarationStatement decl = (PsiDeclarationStatement)file.getClasses()[0].getInitializers()[0].getBody().getStatements()[0]; PsiVariable list = (PsiVariable)decl.getDeclaredElements()[0]; diff --git a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java index c391589cc39e..01fb2d1e512e 100644 --- a/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/search/UpdateCacheTest.java @@ -16,6 +16,7 @@ package com.intellij.psi.search; import com.intellij.JavaTestUtil; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.impl.ProjectUtil; import com.intellij.ide.todo.TodoConfiguration; import com.intellij.openapi.application.ApplicationManager; @@ -93,7 +94,7 @@ public class UpdateCacheTest extends PsiTestCase{ public void testFileCreation() throws Exception { PsiDirectory root = ProjectRootUtil.getAllContentRoots(myProject) [0]; - PsiFile file = PsiFileFactory.getInstance(myProject).createFileFromText("New.java", "class A{ Object o;}"); + PsiFile file = PsiFileFactory.getInstance(myProject).createFileFromText("New.java", JavaFileType.INSTANCE, "class A{ Object o;}"); file = (PsiFile)root.add(file); assertNotNull(file); diff --git a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java index dcf69acd525a..b1fa8a716c91 100644 --- a/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java +++ b/java/testFramework/src/com/intellij/codeInsight/daemon/DaemonAnalyzerTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import com.intellij.codeInspection.InspectionToolProvider; import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.codeInspection.ModifiableModel; import com.intellij.codeInspection.ex.*; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.ide.startup.StartupManagerEx; import com.intellij.ide.startup.impl.StartupManagerImpl; import com.intellij.lang.ExternalAnnotatorsFilter; @@ -36,6 +37,7 @@ import com.intellij.lang.LanguageAnnotators; import com.intellij.lang.StdLanguages; import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.lang.injection.InjectedLanguageManager; +import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.Result; @@ -53,10 +55,7 @@ import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.vfs.LocalFileSystem; -import com.intellij.openapi.vfs.VfsUtil; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileFilter; +import com.intellij.openapi.vfs.*; import com.intellij.profile.codeInspection.InspectionProfileManager; import com.intellij.profile.codeInspection.InspectionProjectProfileManager; import com.intellij.psi.*; @@ -172,9 +171,9 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase { if (isPerformanceTest()) { IntentionManager.getInstance().getAvailableIntentionActions(); // hack to avoid slowdowns in PyExtensionFactory PathManagerEx.getTestDataPath(); // to cache stuff - ReferenceProvidersRegistry.getInstance(); // preload tons of classes + ReferenceProvidersRegistry.getInstance(); // pre-load tons of classes InjectedLanguageManager.getInstance(getProject()); // zillion of Dom Sem classes - LanguageAnnotators.INSTANCE.allForLanguage(StdLanguages.JAVA); // pile of annotator classes loads + LanguageAnnotators.INSTANCE.allForLanguage(JavaLanguage.INSTANCE); // pile of annotator classes loads LanguageAnnotators.INSTANCE.allForLanguage(StdLanguages.XML); ProblemHighlightFilter.EP_NAME.getExtensions(); Extensions.getExtensions(ImplicitUsageProvider.EP_NAME); @@ -445,12 +444,14 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase { return new WriteCommandAction(getProject()) { @Override protected void run(Result result) throws Throwable { - final String qname = - ((PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("a.java", text)).getClasses()[0].getQualifiedName(); + final PsiFileFactory factory = PsiFileFactory.getInstance(getProject()); + final PsiJavaFile javaFile = (PsiJavaFile)factory.createFileFromText("a.java", JavaFileType.INSTANCE, text); + final String qname = javaFile.getClasses()[0].getQualifiedName(); + assertNotNull(qname); final VirtualFile[] files = ModuleRootManager.getInstance(module).getSourceRoots(); File dir; if (files.length > 0) { - dir = VfsUtil.virtualToIoFile(files[0]); + dir = VfsUtilCore.virtualToIoFile(files[0]); } else { dir = createTempDirectory(); @@ -461,10 +462,12 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase { File file = new File(dir, qname.replace('.', '/') + ".java"); FileUtil.createIfDoesntExist(file); - VirtualFile vFile = - LocalFileSystem.getInstance().refreshAndFindFileByPath(file.getCanonicalPath().replace(File.separatorChar, '/')); + VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(file.getCanonicalPath().replace(File.separatorChar, '/')); + assertNotNull(vFile); VfsUtil.saveText(vFile, text); - PsiClass psiClass = ((PsiJavaFile)myPsiManager.findFile(vFile)).getClasses()[0]; + PsiJavaFile psiFile = (PsiJavaFile)myPsiManager.findFile(vFile); + assertNotNull(psiFile); + PsiClass psiClass = psiFile.getClasses()[0]; result.setResult(psiClass); } diff --git a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java index 4f8ecf5136e9..b618b57116cf 100644 --- a/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/PsiTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.FileTypeRegistry; import com.intellij.openapi.module.Module; import com.intellij.openapi.projectRoots.impl.JavaSdkImpl; import com.intellij.openapi.roots.ModuleRootManager; @@ -69,7 +71,8 @@ public abstract class PsiTestCase extends ModuleTestCase { } protected PsiFile createDummyFile(String fileName, String text) throws IncorrectOperationException { - return PsiFileFactory.getInstance(myProject).createFileFromText(fileName, text); + FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(fileName); + return PsiFileFactory.getInstance(myProject).createFileFromText(fileName, type, text); } protected PsiFile createFile(@NonNls String fileName, String text) throws Exception { diff --git a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java index 7ebb31b1b1b2..e4d075bc3b62 100644 --- a/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java +++ b/java/testFramework/src/com/intellij/testFramework/fixtures/impl/JavaCodeInsightTestFixtureImpl.java @@ -15,6 +15,7 @@ */ package com.intellij.testFramework.fixtures.impl; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VirtualFile; @@ -55,8 +56,9 @@ public class JavaCodeInsightTestFixtureImpl extends CodeInsightTestFixtureImpl i final String qName = ApplicationManager.getApplication().runReadAction(new Computable() { public String compute() { - final PsiClass aClass = ((PsiJavaFile)PsiFileFactory.getInstance(getProject()).createFileFromText("a.java", classText)).getClasses()[0]; - return aClass.getQualifiedName(); + final PsiFileFactory factory = PsiFileFactory.getInstance(getProject()); + final PsiJavaFile javaFile = (PsiJavaFile)factory.createFileFromText("a.java", JavaFileType.INSTANCE, classText); + return javaFile.getClasses()[0].getQualifiedName(); } }); assert qName != null; diff --git a/platform/core-api/src/com/intellij/psi/PsiFileFactory.java b/platform/core-api/src/com/intellij/psi/PsiFileFactory.java index 9ca7aac37892..b96a0fbddba9 100644 --- a/platform/core-api/src/com/intellij/psi/PsiFileFactory.java +++ b/platform/core-api/src/com/intellij/psi/PsiFileFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,10 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * @author max - */ package com.intellij.psi; import com.intellij.lang.Language; @@ -28,8 +24,12 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +/** + * @author max + */ public abstract class PsiFileFactory { public static Key ORIGINAL_FILE = Key.create("ORIGINAL_FILE"); + public static PsiFileFactory getInstance(Project project) { return ServiceManager.getService(project, PsiFileFactory.class); } @@ -37,13 +37,14 @@ public abstract class PsiFileFactory { /** * Please use {@link #createFileFromText(String, com.intellij.openapi.fileTypes.FileType, CharSequence)}, * since file type detecting by file extension becomes vulnerable when file type mappings are changed. - * + *

* Creates a file from the specified text. * * @param name the name of the file to create (the extension of the name determines the file type). * @param text the text of the file to create. * @return the created file. - * @throws com.intellij.util.IncorrectOperationException if the file type with specified extension is binary. + * @throws com.intellij.util.IncorrectOperationException + * if the file type with specified extension is binary. */ @Deprecated @NotNull @@ -54,11 +55,11 @@ public abstract class PsiFileFactory { @NotNull public abstract PsiFile createFileFromText(@NonNls @NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text, - long modificationStamp, boolean physical); + long modificationStamp, boolean physical); @NotNull public abstract PsiFile createFileFromText(@NonNls @NotNull String name, @NotNull FileType fileType, @NotNull CharSequence text, - long modificationStamp, boolean physical, boolean markAsCopy); + long modificationStamp, boolean physical, boolean markAsCopy); public abstract PsiFile createFileFromText(@NotNull String name, @NotNull Language language, @NotNull CharSequence text); @@ -71,5 +72,5 @@ public abstract class PsiFileFactory { public abstract PsiFile createFileFromText(FileType fileType, String fileName, CharSequence chars, int startOffset, int endOffset); @Nullable - public abstract PsiFile createFileFromText(@NotNull CharSequence chars, @NotNull PsiFile original); + public abstract PsiFile createFileFromText(@NotNull CharSequence chars, @NotNull PsiFile original); } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java index 38b853489878..964103ac2955 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/quickFix/CreateFileFix.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,9 @@ import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.fileEditor.TextEditor; +import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; +import com.intellij.openapi.fileTypes.FileTypeRegistry; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtil; @@ -160,7 +162,8 @@ public class CreateFileFix extends LocalQuickFixAndIntentionActionOnPsiElement { String text = getFileText(); if (text != null) { - final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("_" + newFileName, text); + final FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(newFileName); + final PsiFile psiFile = PsiFileFactory.getInstance(project).createFileFromText("_" + newFileName, type, text); final PsiElement psiElement = CodeStyleManager.getInstance(project).reformat(psiFile); text = psiElement.getText(); } diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java index 836f640e0786..ad279a3887af 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/DefaultCreateFromTemplateHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,9 @@ package com.intellij.ide.fileTemplates; import com.intellij.ide.IdeBundle; +import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; +import com.intellij.openapi.fileTypes.FileTypeRegistry; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiElement; @@ -46,7 +48,8 @@ public class DefaultCreateFromTemplateHandler implements CreateFromTemplateHandl } directory.checkCreateFile(fileName); - PsiFile file = PsiFileFactory.getInstance(project).createFileFromText(fileName, templateText); + FileType type = FileTypeRegistry.getInstance().getFileTypeByFileName(fileName); + PsiFile file = PsiFileFactory.getInstance(project).createFileFromText(fileName, type, templateText); if (template.isReformatCode()) { CodeStyleManager.getInstance(project).reformat(file); diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java index b142c581c4a3..f1086ed291b9 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java @@ -788,7 +788,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp final Language dialect = (Language)myDialectComboBox.getSelectedItem(); return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, dialect == null ? language : dialect, text); } - return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, text); + return PsiFileFactory.getInstance(myProject).createFileFromText("Dummy." + ext, type, text); } } catch (IncorrectOperationException e) { diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java b/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java index 752406c1ea05..cd8c1bf76994 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/checkin/TodoCheckinHandlerWorker.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -234,7 +234,7 @@ public class TodoCheckinHandlerWorker { private void checkEditedFragment(TodoItem newTodoItem) { if (myBeforeFile == null) { - myBeforeFile = myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myBeforeContent); + myBeforeFile = myPsiFileFactory.createFileFromText("old" + myAfterFile.getName(), myAfterFile.getFileType(), myBeforeContent); } if (myOldItems == null) { final Collection all = diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java index e16a95c63ab0..8d606cabeec2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/manipulators/PsiCommentManipulator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,11 +33,9 @@ public class PsiCommentManipulator extends AbstractElementManipulator