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


Java ClassUtil.getAnyMethodToImplement方法代码示例

本文整理汇总了Java中com.intellij.codeInsight.ClassUtil.getAnyMethodToImplement方法的典型用法代码示例。如果您正苦于以下问题:Java ClassUtil.getAnyMethodToImplement方法的具体用法?Java ClassUtil.getAnyMethodToImplement怎么用?Java ClassUtil.getAnyMethodToImplement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.intellij.codeInsight.ClassUtil的用法示例。


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

示例1: checkClassWithAbstractMethods

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
static HighlightInfo checkClassWithAbstractMethods(PsiClass aClass, PsiElement implementsFixElement, TextRange range) {
  PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(aClass);

  if (abstractMethod == null) {
    return null;
  }

  final PsiClass superClass = abstractMethod.getContainingClass();
  if (superClass == null) {
    return null;
  }

  String baseClassName = HighlightUtil.formatClass(aClass, false);
  String methodName = JavaHighlightUtil.formatMethod(abstractMethod);
  String message = JavaErrorMessages.message(aClass instanceof PsiEnumConstantInitializer || implementsFixElement instanceof PsiEnumConstant ? "enum.constant.should.implement.method" : "class.must.be.abstract",
                                             baseClassName,
                                             methodName,
                                             HighlightUtil.formatClass(superClass, false));

  HighlightInfo errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(range).descriptionAndTooltip(message).create();
  final PsiMethod anyMethodToImplement = ClassUtil.getAnyMethodToImplement(aClass);
  if (anyMethodToImplement != null) {
    if (!anyMethodToImplement.hasModifierProperty(PsiModifier.PACKAGE_LOCAL) ||
        JavaPsiFacade.getInstance(aClass.getProject()).arePackagesTheSame(aClass, superClass)) {
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createImplementMethodsFix(implementsFixElement));
    } else {
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(anyMethodToImplement, PsiModifier.PROTECTED, true, true));
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(anyMethodToImplement, PsiModifier.PUBLIC, true, true));
    }
  }
  if (!(aClass instanceof PsiAnonymousClass)
      && HighlightUtil.getIncompatibleModifier(PsiModifier.ABSTRACT, aClass.getModifierList()) == null) {
    QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(aClass, PsiModifier.ABSTRACT, true, false));
  }
  return errorResult;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:38,代码来源:HighlightClassUtil.java

示例2: checkClassWithAbstractMethods

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
static HighlightInfo checkClassWithAbstractMethods(PsiClass aClass, PsiElement implementsFixElement, TextRange range) {
  PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(aClass);

  if (abstractMethod == null) {
    return null;
  }

  final PsiClass superClass = abstractMethod.getContainingClass();
  if (superClass == null) {
    return null;
  }

  String baseClassName = HighlightUtil.formatClass(aClass, false);
  String methodName = JavaHighlightUtil.formatMethod(abstractMethod);
  String message = JavaErrorMessages.message(aClass instanceof PsiEnumConstantInitializer || implementsFixElement instanceof PsiEnumConstant ? "enum.constant.should.implement.method" : "class.must.be.abstract",
                                             baseClassName,
                                             methodName,
                                             HighlightUtil.formatClass(superClass, false));

  HighlightInfo errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(range).descriptionAndTooltip(message).create();
  final PsiMethod anyMethodToImplement = ClassUtil.getAnyMethodToImplement(aClass);
  if (anyMethodToImplement != null) {
    if (!anyMethodToImplement.hasModifierProperty(PsiModifier.PACKAGE_LOCAL) ||
        JavaPsiFacade.getInstance(aClass.getProject()).arePackagesTheSame(aClass, superClass)) {
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createImplementMethodsFix(implementsFixElement));
    } else {
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(anyMethodToImplement, PsiModifier.PROTECTED, true, true));
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(anyMethodToImplement, PsiModifier.PUBLIC, true, true));
    }
  }
  if (!(aClass instanceof PsiAnonymousClass)
      && HighlightUtil.getIncompatibleModifier(PsiModifier.ABSTRACT, aClass.getModifierList()) == null) {
    IntentionAction fix = QUICK_FIX_FACTORY.createModifierListFix(aClass, PsiModifier.ABSTRACT, true, false);
    QuickFixAction.registerQuickFixAction(errorResult, fix);
  }
  return errorResult;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:39,代码来源:HighlightClassUtil.java

示例3: checkClassWithAbstractMethods

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
static HighlightInfo checkClassWithAbstractMethods(PsiClass aClass,
		PsiElement implementsFixElement,
		TextRange range)
{
	PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(aClass);

	if(abstractMethod == null)
	{
		return null;
	}

	final PsiClass superClass = abstractMethod.getContainingClass();
	if(superClass == null)
	{
		return null;
	}

	String baseClassName = HighlightUtil.formatClass(aClass, false);
	String methodName = JavaHighlightUtil.formatMethod(abstractMethod);
	String message = JavaErrorMessages.message(aClass instanceof PsiEnumConstantInitializer ||
			implementsFixElement instanceof PsiEnumConstant ? "enum.constant.should.implement.method" : "class" +
			".must.be.abstract", baseClassName, methodName, HighlightUtil.formatClass(superClass, false));

	HighlightInfo errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(range)
			.descriptionAndTooltip(message).create();
	final PsiMethod anyMethodToImplement = ClassUtil.getAnyMethodToImplement(aClass);
	if(anyMethodToImplement != null)
	{
		if(!anyMethodToImplement.hasModifierProperty(PsiModifier.PACKAGE_LOCAL) || JavaPsiFacade.getInstance
				(aClass.getProject()).arePackagesTheSame(aClass, superClass))
		{
			QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createImplementMethodsFix
					(implementsFixElement));
		}
		else
		{
			QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix
					(anyMethodToImplement, PsiModifier.PROTECTED, true, true));
			QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix
					(anyMethodToImplement, PsiModifier.PUBLIC, true, true));
		}
	}
	if(!(aClass instanceof PsiAnonymousClass) && HighlightUtil.getIncompatibleModifier(PsiModifier.ABSTRACT,
			aClass.getModifierList()) == null)
	{
		QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(aClass,
				PsiModifier.ABSTRACT, true, false));
	}
	return errorResult;
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:52,代码来源:HighlightClassUtil.java


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