當前位置: 首頁>>代碼示例>>Java>>正文


Java IProblem.ConflictingInheritedNullAnnotations方法代碼示例

本文整理匯總了Java中org.eclipse.jdt.core.compiler.IProblem.ConflictingInheritedNullAnnotations方法的典型用法代碼示例。如果您正苦於以下問題:Java IProblem.ConflictingInheritedNullAnnotations方法的具體用法?Java IProblem.ConflictingInheritedNullAnnotations怎麽用?Java IProblem.ConflictingInheritedNullAnnotations使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.eclipse.jdt.core.compiler.IProblem的用法示例。


在下文中一共展示了IProblem.ConflictingInheritedNullAnnotations方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: createNullAnnotationInSignatureFix

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
public static NullAnnotationsFix createNullAnnotationInSignatureFix(
    CompilationUnit compilationUnit,
    IProblemLocation problem,
    ChangeKind changeKind,
    boolean isArgumentProblem) {
  String nullableAnnotationName =
      getNullableAnnotationName(compilationUnit.getJavaElement(), false);
  String nonNullAnnotationName =
      getNonNullAnnotationName(compilationUnit.getJavaElement(), false);
  String annotationToAdd = nullableAnnotationName;
  String annotationToRemove = nonNullAnnotationName;

  switch (problem.getProblemId()) {
    case IProblem.IllegalDefinitionToNonNullParameter:
    case IProblem.IllegalRedefinitionToNonNullParameter:
      // case ParameterLackingNullableAnnotation: // never proposed with modifyOverridden
      if (changeKind == ChangeKind.OVERRIDDEN) {
        annotationToAdd = nonNullAnnotationName;
        annotationToRemove = nullableAnnotationName;
      }
      break;
    case IProblem.ParameterLackingNonNullAnnotation:
    case IProblem.IllegalReturnNullityRedefinition:
      if (changeKind != ChangeKind.OVERRIDDEN) {
        annotationToAdd = nonNullAnnotationName;
        annotationToRemove = nullableAnnotationName;
      }
      break;
    case IProblem.RequiredNonNullButProvidedNull:
    case IProblem.RequiredNonNullButProvidedPotentialNull:
    case IProblem.RequiredNonNullButProvidedUnknown:
    case IProblem.RequiredNonNullButProvidedSpecdNullable:
      if (isArgumentProblem == (changeKind != ChangeKind.TARGET)) {
        annotationToAdd = nonNullAnnotationName;
        annotationToRemove = nullableAnnotationName;
      }
      break;
    case IProblem.ConflictingNullAnnotations:
    case IProblem.ConflictingInheritedNullAnnotations:
      if (changeKind == ChangeKind.INVERSE) {
        annotationToAdd = nonNullAnnotationName;
        annotationToRemove = nullableAnnotationName;
      }
      // all others propose to add @Nullable
  }

  // when performing one change at a time we can actually modify another CU than the current one:
  NullAnnotationsRewriteOperations.SignatureAnnotationRewriteOperation operation =
      NullAnnotationsRewriteOperations.createAddAnnotationOperation(
          compilationUnit,
          problem,
          annotationToAdd,
          annotationToRemove,
          null,
          false /*thisUnitOnly*/,
          true /*allowRemove*/,
          isArgumentProblem,
          changeKind);
  if (operation == null) return null;

  if (annotationToAdd == nonNullAnnotationName) {
    operation.fRemoveIfNonNullByDefault = true;
    operation.fNonNullByDefaultName =
        getNonNullByDefaultAnnotationName(compilationUnit.getJavaElement(), false);
  }
  return new NullAnnotationsFix(
      operation.getMessage(),
      operation.getCompilationUnit(), // note that this uses the findings from
      // createAddAnnotationOperation(..)
      new NullAnnotationsRewriteOperations.SignatureAnnotationRewriteOperation[] {operation});
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:72,代碼來源:NullAnnotationsFix.java


注:本文中的org.eclipse.jdt.core.compiler.IProblem.ConflictingInheritedNullAnnotations方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。