当前位置: 首页>>代码示例>>Java>>正文


Java ExtractSuperClassUtil类代码示例

本文整理汇总了Java中com.intellij.refactoring.extractSuperclass.ExtractSuperClassUtil的典型用法代码示例。如果您正苦于以下问题:Java ExtractSuperClassUtil类的具体用法?Java ExtractSuperClassUtil怎么用?Java ExtractSuperClassUtil使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ExtractSuperClassUtil类属于com.intellij.refactoring.extractSuperclass包,在下文中一共展示了ExtractSuperClassUtil类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: invoke

import com.intellij.refactoring.extractSuperclass.ExtractSuperClassUtil; //导入依赖的package包/类
public void invoke(@NotNull final Project project, @NotNull PsiElement[] elements, DataContext dataContext) {
  if (elements.length != 1) return;

  myProject = project;
  myClass = (PsiClass)elements[0];


  if (!CommonRefactoringUtil.checkReadOnlyStatus(project, myClass)) return;

  final ExtractInterfaceDialog dialog = new ExtractInterfaceDialog(myProject, myClass);
  if (!dialog.showAndGet() || !dialog.isExtractSuperclass()) {
    return;
  }
  final MultiMap<PsiElement, String> conflicts = new MultiMap<PsiElement, String>();
  ExtractSuperClassUtil.checkSuperAccessible(dialog.getTargetDirectory(), conflicts, myClass);
  if (!ExtractSuperClassUtil.showConflicts(dialog, conflicts, myProject)) return;
  CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
    public void run() {
      ApplicationManager.getApplication().runWriteAction(new Runnable() {
        public void run() {
          myInterfaceName = dialog.getExtractedSuperName();
          mySelectedMembers = ArrayUtil.toObjectArray(dialog.getSelectedMemberInfos(), MemberInfo.class);
          myTargetDir = dialog.getTargetDirectory();
          myJavaDocPolicy = new DocCommentPolicy(dialog.getDocCommentPolicy());
          try {
            doRefactoring();
          }
          catch (IncorrectOperationException e) {
            LOG.error(e);
          }
        }
      });
    }
  }, REFACTORING_NAME, null);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:36,代码来源:ExtractInterfaceHandler.java

示例2: testAnonymClass

import com.intellij.refactoring.extractSuperclass.ExtractSuperClassUtil; //导入依赖的package包/类
public void testAnonymClass() throws Exception {
  String rootBefore = getRoot() + "/before";
  PsiTestUtil.removeAllRoots(myModule, IdeaTestUtil.getMockJdk14());
  final VirtualFile rootDir = PsiTestUtil.createTestProjectStructure(myProject, myModule, rootBefore, myFilesToDelete);
  PsiClass psiClass = myJavaFacade.findClass("Test", ProjectScope.getAllScope(myProject));
  assertNotNull(psiClass);
  final PsiField[] fields = psiClass.getFields();
  assertTrue(fields.length == 1);
  final PsiExpression initializer = fields[0].getInitializer();
  assertNotNull(initializer);
  assertInstanceOf(initializer, PsiNewExpression.class);
  final PsiAnonymousClass anonymousClass = ((PsiNewExpression)initializer).getAnonymousClass();
  assertNotNull(anonymousClass);
  final ArrayList<MemberInfo> infos = new ArrayList<>();
  MemberInfo.extractClassMembers(anonymousClass, infos, member -> true, false);
  for (MemberInfo info : infos) {
    info.setChecked(true);
  }
  new WriteCommandAction.Simple(myProject) {
    @Override
    protected void run() throws Throwable {
      ExtractSuperClassUtil
        .extractSuperClass(myProject, psiClass.getContainingFile().getContainingDirectory(), "TestSubclass", anonymousClass,
                           infos.toArray(new MemberInfo[infos.size()]), new DocCommentPolicy(DocCommentPolicy.ASIS));
    }
  }.execute();
  String rootAfter = getRoot() + "/after";
  VirtualFile rootDir2 = LocalFileSystem.getInstance().findFileByPath(rootAfter.replace(File.separatorChar, '/'));
  myProject.getComponent(PostprocessReformattingAspect.class).doPostponedFormatting();
  IdeaTestUtil.assertDirectoriesEqual(rootDir2, rootDir);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:32,代码来源:ExtractSuperClassTest.java

示例3: invoke

import com.intellij.refactoring.extractSuperclass.ExtractSuperClassUtil; //导入依赖的package包/类
public void invoke(@NotNull final Project project, @NotNull PsiElement[] elements, DataContext dataContext) {
  if (elements.length != 1) return;

  myProject = project;
  myClass = (PsiClass)elements[0];


  if (!CommonRefactoringUtil.checkReadOnlyStatus(project, myClass)) return;

  final ExtractInterfaceDialog dialog = new ExtractInterfaceDialog(myProject, myClass);
  dialog.show();
  if (!dialog.isOK() || !dialog.isExtractSuperclass()) return;
  final MultiMap<PsiElement, String> conflicts = new MultiMap<PsiElement, String>();
  ExtractSuperClassUtil.checkSuperAccessible(dialog.getTargetDirectory(), conflicts, myClass);
  if (!ExtractSuperClassUtil.showConflicts(dialog, conflicts, myProject)) return;
  CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
    public void run() {
      ApplicationManager.getApplication().runWriteAction(new Runnable() {
        public void run() {
          myInterfaceName = dialog.getExtractedSuperName();
          mySelectedMembers = ArrayUtil.toObjectArray(dialog.getSelectedMemberInfos(), MemberInfo.class);
          myTargetDir = dialog.getTargetDirectory();
          myJavaDocPolicy = new DocCommentPolicy(dialog.getDocCommentPolicy());
          try {
            doRefactoring();
          }
          catch (IncorrectOperationException e) {
            LOG.error(e);
          }
        }
      });
    }
  }, REFACTORING_NAME, null);

}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:36,代码来源:ExtractInterfaceHandler.java


注:本文中的com.intellij.refactoring.extractSuperclass.ExtractSuperClassUtil类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。