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


Java ClassUtil.getAnyAbstractMethod方法代码示例

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


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

示例1: checkInstantiationOfAbstractClass

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
static HighlightInfo checkInstantiationOfAbstractClass(PsiClass aClass, @NotNull PsiElement highlightElement) {
  HighlightInfo errorResult = null;
  if (aClass != null && aClass.hasModifierProperty(PsiModifier.ABSTRACT)
      && (!(highlightElement instanceof PsiNewExpression) || !(((PsiNewExpression)highlightElement).getType() instanceof PsiArrayType))) {
    String baseClassName = aClass.getName();
    String message = JavaErrorMessages.message("abstract.cannot.be.instantiated", baseClassName);
    errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(highlightElement).descriptionAndTooltip(message).create();
    final PsiMethod anyAbstractMethod = ClassUtil.getAnyAbstractMethod(aClass);
    if (!aClass.isInterface() && anyAbstractMethod == null) {
      // suggest to make not abstract only if possible
      QuickFixAction.registerQuickFixAction(errorResult,
                                            QUICK_FIX_FACTORY.createModifierListFix(aClass, PsiModifier.ABSTRACT, false, false));
    }
    if (anyAbstractMethod != null && highlightElement instanceof PsiNewExpression && ((PsiNewExpression)highlightElement).getClassReference() != null) {
      QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createImplementAbstractClassMethodsFix(highlightElement));
    }
  }
  return errorResult;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:21,代码来源:HighlightClassUtil.java

示例2: checkImplementedMethodsOfClass

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
private static void checkImplementedMethodsOfClass(AnnotationHolder holder, GrTypeDefinition typeDefinition) {
  if (typeDefinition.hasModifierProperty(PsiModifier.ABSTRACT)) return;
  if (typeDefinition.isAnnotationType()) return;
  if (typeDefinition instanceof GrTypeParameter) return;


  PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(typeDefinition);
  if (abstractMethod == null) return;

  String notImplementedMethodName = abstractMethod.getName();

  final TextRange range = GrHighlightUtil.getClassHeaderTextRange(typeDefinition);
  final Annotation annotation = holder.createErrorAnnotation(range,
                                                             GroovyBundle.message("method.is.not.implemented", notImplementedMethodName));
  registerImplementsMethodsFix(typeDefinition, abstractMethod, annotation);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:GroovyAnnotator.java

示例3: checkInstantiationOfAbstractClass

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
public static HighlightInfo checkInstantiationOfAbstractClass(PsiClass aClass, PsiElement highlightElement) {
  HighlightInfo errorResult = null;
  if (aClass.hasModifierProperty(PsiModifier.ABSTRACT)) {
    String baseClassName = aClass.getName();
    String message = JavaErrorMessages.message("abstract.cannot.be.instantiated", baseClassName);
    PsiElement parent = highlightElement.getParent();
    if (parent instanceof PsiNewExpression) {
      errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(parent).descriptionAndTooltip(message).create();
    } else {
      errorResult =
        HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(highlightElement).descriptionAndTooltip(message).create();
    }
    final PsiMethod anyAbstractMethod = ClassUtil.getAnyAbstractMethod(aClass);
    if (!aClass.isInterface() && anyAbstractMethod == null) {
      // suggest to make not abstract only if possible
      IntentionAction fix = QUICK_FIX_FACTORY.createModifierListFix(aClass, PsiModifier.ABSTRACT, false, false);
      QuickFixAction.registerQuickFixAction(errorResult, fix);
    }
    if (anyAbstractMethod != null && parent instanceof PsiNewExpression && ((PsiNewExpression)parent).getClassReference() != null) {
      QuickFixAction.registerQuickFixAction(errorResult, new ImplementAbstractClassMethodsFix(parent));
    }
  }
  return errorResult;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:26,代码来源:HighlightClassUtil.java

示例4: 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

示例5: 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

示例6: checkImplementedMethodsOfClass

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
private static void checkImplementedMethodsOfClass(AnnotationHolder holder, GrTypeDefinition typeDefinition) {
  if (typeDefinition.hasModifierProperty(ABSTRACT)) return;
  if (typeDefinition.isAnnotationType()) return;
  if (typeDefinition instanceof GrTypeParameter) return;

  PsiMethod abstractMethod = ClassUtil.getAnyAbstractMethod(typeDefinition);
  if (abstractMethod== null) return;

  String notImplementedMethodName = abstractMethod.getName();

  final TextRange range = GrHighlightUtil.getClassHeaderTextRange(typeDefinition);
  final Annotation annotation = holder.createErrorAnnotation(range,
                                                             GroovyBundle.message("method.is.not.implemented", notImplementedMethodName));
  registerImplementsMethodsFix(typeDefinition, abstractMethod, annotation);
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:16,代码来源:GroovyAnnotator.java

示例7: checkInstantiationOfAbstractClass

import com.intellij.codeInsight.ClassUtil; //导入方法依赖的package包/类
@Nullable
static HighlightInfo checkInstantiationOfAbstractClass(PsiClass aClass, @NotNull PsiElement highlightElement)
{
	HighlightInfo errorResult = null;
	if(aClass != null && aClass.hasModifierProperty(PsiModifier.ABSTRACT) && (!(highlightElement instanceof
			PsiNewExpression) || !(((PsiNewExpression) highlightElement).getType() instanceof PsiArrayType)))
	{
		String baseClassName = aClass.getName();
		String message = JavaErrorMessages.message("abstract.cannot.be.instantiated", baseClassName);
		errorResult = HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(highlightElement)
				.descriptionAndTooltip(message).create();
		final PsiMethod anyAbstractMethod = ClassUtil.getAnyAbstractMethod(aClass);
		if(!aClass.isInterface() && anyAbstractMethod == null)
		{
			// suggest to make not abstract only if possible
			QuickFixAction.registerQuickFixAction(errorResult, QUICK_FIX_FACTORY.createModifierListFix(aClass,
					PsiModifier.ABSTRACT, false, false));
		}
		if(anyAbstractMethod != null && highlightElement instanceof PsiNewExpression && ((PsiNewExpression)
				highlightElement).getClassReference() != null)
		{
			QuickFixAction.registerQuickFixAction(errorResult,
					QUICK_FIX_FACTORY.createImplementAbstractClassMethodsFix(highlightElement));
		}
	}
	return errorResult;
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:28,代码来源:HighlightClassUtil.java

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