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


Java IProblem.IllegalReturnNullityRedefinition方法代碼示例

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


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

示例2: createAddNullAnnotationOperations

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static void createAddNullAnnotationOperations(
    CompilationUnit compilationUnit,
    IProblemLocation[] locations,
    List<CompilationUnitRewriteOperation> result) {
  String nullableAnnotationName =
      getNullableAnnotationName(compilationUnit.getJavaElement(), false);
  String nonNullAnnotationName =
      getNonNullAnnotationName(compilationUnit.getJavaElement(), false);
  Set<String> handledPositions = new HashSet<String>();
  for (int i = 0; i < locations.length; i++) {
    IProblemLocation problem = locations[i];
    if (problem == null) continue; // problem was filtered out by createCleanUp()
    boolean isArgumentProblem =
        isComplainingAboutArgument(problem.getCoveredNode(compilationUnit));
    String annotationToAdd = nullableAnnotationName;
    String annotationToRemove = nonNullAnnotationName;
    // cf. createNullAnnotationInSignatureFix() but changeKind is constantly LOCAL
    switch (problem.getProblemId()) {
      case IProblem.IllegalDefinitionToNonNullParameter:
      case IProblem.IllegalRedefinitionToNonNullParameter:
        break;
      case IProblem.ParameterLackingNonNullAnnotation:
      case IProblem.IllegalReturnNullityRedefinition:
        annotationToAdd = nonNullAnnotationName;
        annotationToRemove = nullableAnnotationName;
        break;
      case IProblem.RequiredNonNullButProvidedNull:
      case IProblem.RequiredNonNullButProvidedPotentialNull:
      case IProblem.RequiredNonNullButProvidedUnknown:
      case IProblem.RequiredNonNullButProvidedSpecdNullable:
        if (isArgumentProblem) {
          annotationToAdd = nonNullAnnotationName;
          annotationToRemove = nullableAnnotationName;
        }
        break;
        // all others propose to add @Nullable
    }
    // when performing multiple changes we can only modify the one CU that the CleanUp
    // infrastructure provides to the operation.
    SignatureAnnotationRewriteOperation fix =
        NullAnnotationsRewriteOperations.createAddAnnotationOperation(
            compilationUnit,
            problem,
            annotationToAdd,
            annotationToRemove,
            handledPositions,
            true /*thisUnitOnly*/,
            false /*allowRemove*/,
            isArgumentProblem,
            ChangeKind.LOCAL);
    if (fix != null) {
      if (annotationToAdd == nonNullAnnotationName) {
        fix.fRemoveIfNonNullByDefault = true;
        fix.fNonNullByDefaultName =
            getNonNullByDefaultAnnotationName(compilationUnit.getJavaElement(), false);
      }
      result.add(fix);
    }
  }
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:61,代碼來源:NullAnnotationsFix.java

示例3: createAddAnnotationToOverriddenOperation

import org.eclipse.jdt.core.compiler.IProblem; //導入方法依賴的package包/類
private static SignatureAnnotationRewriteOperation createAddAnnotationToOverriddenOperation(
    CompilationUnit compilationUnit,
    IProblemLocation problem,
    String annotationToAdd,
    String annotationToRemove,
    boolean allowRemove) {
  ICompilationUnit cu = (ICompilationUnit) compilationUnit.getJavaElement();
  if (!JavaModelUtil.is50OrHigher(cu.getJavaProject())) return null;

  ASTNode selectedNode = problem.getCoveringNode(compilationUnit);
  if (selectedNode == null) return null;

  ASTNode declaringNode = getDeclaringNode(selectedNode);
  switch (problem.getProblemId()) {
    case IProblem.IllegalDefinitionToNonNullParameter:
    case IProblem.IllegalRedefinitionToNonNullParameter:
      break;
    case IProblem.IllegalReturnNullityRedefinition:
      if (declaringNode == null) declaringNode = selectedNode;
      break;
    default:
      return null;
  }

  String annotationNameLabel = annotationToAdd;
  int lastDot = annotationToAdd.lastIndexOf('.');
  if (lastDot != -1) annotationNameLabel = annotationToAdd.substring(lastDot + 1);
  annotationNameLabel = BasicElementLabels.getJavaElementName(annotationNameLabel);

  if (declaringNode instanceof MethodDeclaration) {
    // complaint is in signature of this method
    MethodDeclaration declaration = (MethodDeclaration) declaringNode;
    switch (problem.getProblemId()) {
      case IProblem.IllegalDefinitionToNonNullParameter:
      case IProblem.IllegalRedefinitionToNonNullParameter:
        return createChangeOverriddenParameterOperation(
            compilationUnit,
            cu,
            declaration,
            selectedNode,
            allowRemove,
            annotationToAdd,
            annotationToRemove,
            annotationNameLabel);
      case IProblem.IllegalReturnNullityRedefinition:
        if (hasNullAnnotation(
            declaration)) { // don't adjust super if local has no explicit annotation (?)
          return createChangeOverriddenReturnOperation(
              compilationUnit,
              cu,
              declaration,
              allowRemove,
              annotationToAdd,
              annotationToRemove,
              annotationNameLabel);
        }
    }
  }
  return null;
}
 
開發者ID:eclipse,項目名稱:che,代碼行數:61,代碼來源:NullAnnotationsRewriteOperations.java


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