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


Java ASTResolving.createQuickFixAST方法代码示例

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


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

示例1: findCUForMethod

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
private static CompilationUnit findCUForMethod(
    CompilationUnit compilationUnit, ICompilationUnit cu, IMethodBinding methodBinding) {
  ASTNode methodDecl = compilationUnit.findDeclaringNode(methodBinding.getMethodDeclaration());
  if (methodDecl == null) {
    // is methodDecl defined in another CU?
    ITypeBinding declaringTypeDecl = methodBinding.getDeclaringClass().getTypeDeclaration();
    if (declaringTypeDecl.isFromSource()) {
      ICompilationUnit targetCU = null;
      try {
        targetCU =
            ASTResolving.findCompilationUnitForBinding(cu, compilationUnit, declaringTypeDecl);
      } catch (JavaModelException e) {
        /* can't do better */
      }
      if (targetCU != null) {
        return ASTResolving.createQuickFixAST(targetCU, null);
      }
    }
    return null;
  }
  return compilationUnit;
}
 
开发者ID:eclipse,项目名称:che,代码行数:23,代码来源:NullAnnotationsRewriteOperations.java

示例2: doAddField

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
private ASTRewrite doAddField(CompilationUnit astRoot) {
  SimpleName node = fOriginalNode;
  boolean isInDifferentCU = false;

  ASTNode newTypeDecl = astRoot.findDeclaringNode(fSenderBinding);
  if (newTypeDecl == null) {
    astRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    newTypeDecl = astRoot.findDeclaringNode(fSenderBinding.getKey());
    isInDifferentCU = true;
  }
  ImportRewrite imports = createImportRewrite(astRoot);
  ImportRewriteContext importRewriteContext =
      new ContextSensitiveImportRewriteContext(
          ASTResolving.findParentBodyDeclaration(node), imports);

  if (newTypeDecl != null) {
    AST ast = newTypeDecl.getAST();

    ASTRewrite rewrite = ASTRewrite.create(ast);

    VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
    fragment.setName(ast.newSimpleName(node.getIdentifier()));

    Type type = evaluateVariableType(ast, imports, importRewriteContext, fSenderBinding);

    FieldDeclaration newDecl = ast.newFieldDeclaration(fragment);
    newDecl.setType(type);
    newDecl
        .modifiers()
        .addAll(ASTNodeFactory.newModifiers(ast, evaluateFieldModifiers(newTypeDecl)));

    if (fSenderBinding.isInterface() || fVariableKind == CONST_FIELD) {
      fragment.setInitializer(ASTNodeFactory.newDefaultExpression(ast, type, 0));
    }

    ChildListPropertyDescriptor property = ASTNodes.getBodyDeclarationsProperty(newTypeDecl);
    List<BodyDeclaration> decls =
        ASTNodes.<BodyDeclaration>getChildListProperty(newTypeDecl, property);

    int maxOffset = isInDifferentCU ? -1 : node.getStartPosition();

    int insertIndex = findFieldInsertIndex(decls, newDecl, maxOffset);

    ListRewrite listRewriter = rewrite.getListRewrite(newTypeDecl, property);
    listRewriter.insertAt(newDecl, insertIndex, null);

    ModifierCorrectionSubProcessor.installLinkedVisibilityProposals(
        getLinkedProposalModel(), rewrite, newDecl.modifiers(), fSenderBinding.isInterface());

    addLinkedPosition(rewrite.track(newDecl.getType()), false, KEY_TYPE);
    if (!isInDifferentCU) {
      addLinkedPosition(rewrite.track(node), true, KEY_NAME);
    }
    addLinkedPosition(rewrite.track(fragment.getName()), false, KEY_NAME);

    if (fragment.getInitializer() != null) {
      addLinkedPosition(rewrite.track(fragment.getInitializer()), false, KEY_INITIALIZER);
    }
    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:63,代码来源:NewVariableCorrectionProposal.java

示例3: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
  CompilationUnit targetAstRoot = ASTResolving.createQuickFixAST(
      getCompilationUnit(), null);
  createImportRewrite(targetAstRoot);

  ASTRewrite rewrite = ASTRewrite.create(targetAstRoot.getAST());

  // Find the method declaration in the AST we just generated (the one that
  // the AST rewriter is hooked up to).
  MethodDeclaration rewriterAstMethodDecl = JavaASTUtils.findMethodDeclaration(
      targetAstRoot, methodDecl.resolveBinding().getKey());
  if (rewriterAstMethodDecl == null) {
    return null;
  }

  // Remove the extra method declaration
  rewrite.remove(rewriterAstMethodDecl, null);

  return rewrite;
}
 
开发者ID:gwt-plugins,项目名称:gwt-eclipse-plugin,代码行数:22,代码来源:DeleteMethodProposal.java

示例4: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() {
  MethodDeclaration dstMethod = findBestUpdateMatch(rpcPair);

  CompilationUnit astRoot = ASTResolving.createQuickFixAST(
      getCompilationUnit(), null);
  createImportRewrite(astRoot);

  ASTRewrite rewrite = ASTRewrite.create(astRoot.getAST());

  MethodDeclaration rewriterDstMethod = JavaASTUtils.findMethodDeclaration(
      astRoot, dstMethod.resolveBinding().getKey());
  if (rewriterDstMethod == null) {
    return null;
  }

  MethodDeclaration newSignature = computeMethodSignature(rewrite.getAST(),
      rpcPair, rewriterDstMethod);

  rewrite.replace(rewriterDstMethod, newSignature, null);

  return rewrite;
}
 
开发者ID:gwt-plugins,项目名称:gwt-eclipse-plugin,代码行数:24,代码来源:AbstractUpdateSignatureProposal.java

示例5: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() {
  CompilationUnit targetAstRoot = ASTResolving.createQuickFixAST(
      getCompilationUnit(), null);
  createImportRewrite(targetAstRoot);

  // Find the target type declaration
  TypeDeclaration typeDecl = JavaASTUtils.findTypeDeclaration(targetAstRoot,
      targetQualifiedTypeName);
  if (typeDecl == null) {
    return null;
  }

  ASTRewrite rewrite = ASTRewrite.create(targetAstRoot.getAST());

  // Generate the new method declaration
  MethodDeclaration methodDecl = createMethodDeclaration(rewrite.getAST());

  // Add the new method declaration to the interface
  ChildListPropertyDescriptor property = ASTNodes.getBodyDeclarationsProperty(typeDecl);
  ListRewrite listRewriter = rewrite.getListRewrite(typeDecl, property);
  listRewriter.insertLast(methodDecl, null);

  return rewrite;
}
 
开发者ID:gwt-plugins,项目名称:gwt-eclipse-plugin,代码行数:26,代码来源:AbstractCreateMethodProposal.java

示例6: findCUForMethod

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
private static CompilationUnit findCUForMethod(CompilationUnit compilationUnit, ICompilationUnit cu, IMethodBinding methodBinding) {
	ASTNode methodDecl= compilationUnit.findDeclaringNode(methodBinding.getMethodDeclaration());
	if (methodDecl == null) {
		// is methodDecl defined in another CU?
		ITypeBinding declaringTypeDecl= methodBinding.getDeclaringClass().getTypeDeclaration();
		if (declaringTypeDecl.isFromSource()) {
			ICompilationUnit targetCU= null;
			try {
				targetCU= ASTResolving.findCompilationUnitForBinding(cu, compilationUnit, declaringTypeDecl);
			} catch (JavaModelException e) { /* can't do better */
			}
			if (targetCU != null) {
				return ASTResolving.createQuickFixAST(targetCU, null);
			}
		}
		return null;
	}
	return compilationUnit;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:20,代码来源:NullAnnotationsRewriteOperations.java

示例7: doAddEnumConst

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
private ASTRewrite doAddEnumConst(CompilationUnit astRoot) {
	SimpleName node= fOriginalNode;

	ASTNode newTypeDecl= astRoot.findDeclaringNode(fSenderBinding);
	if (newTypeDecl == null) {
		astRoot= ASTResolving.createQuickFixAST(getCompilationUnit(), null);
		newTypeDecl= astRoot.findDeclaringNode(fSenderBinding.getKey());
	}

	if (newTypeDecl != null) {
		AST ast= newTypeDecl.getAST();

		ASTRewrite rewrite= ASTRewrite.create(ast);

		EnumConstantDeclaration constDecl= ast.newEnumConstantDeclaration();
		constDecl.setName(ast.newSimpleName(node.getIdentifier()));

		ListRewrite listRewriter= rewrite.getListRewrite(newTypeDecl, EnumDeclaration.ENUM_CONSTANTS_PROPERTY);
		listRewriter.insertLast(constDecl, null);

		addLinkedPosition(rewrite.track(constDecl.getName()), false, KEY_NAME);

		return rewrite;
	}
	return null;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:27,代码来源:NewVariableCorrectionProposal.java

示例8: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
  ASTNode boundNode = fAstRoot.findDeclaringNode(fBinding);
  ASTNode declNode = null;
  CompilationUnit newRoot = fAstRoot;
  if (boundNode != null) {
    declNode = boundNode; // is same CU
  } else {
    newRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    declNode = newRoot.findDeclaringNode(fBinding.getKey());
  }
  ImportRewrite imports = createImportRewrite(newRoot);

  if (declNode instanceof TypeDeclaration) {
    AST ast = declNode.getAST();
    ASTRewrite rewrite = ASTRewrite.create(ast);

    ImportRewriteContext importRewriteContext =
        new ContextSensitiveImportRewriteContext(declNode, imports);
    Type newInterface = imports.addImport(fNewInterface, ast, importRewriteContext);
    ListRewrite listRewrite =
        rewrite.getListRewrite(declNode, TypeDeclaration.SUPER_INTERFACE_TYPES_PROPERTY);
    listRewrite.insertLast(newInterface, null);

    // set up linked mode
    final String KEY_TYPE = "type"; // $NON-NLS-1$
    addLinkedPosition(rewrite.track(newInterface), true, KEY_TYPE);
    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:32,代码来源:ImplementInterfaceProposal.java

示例9: doAddEnumConst

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
private ASTRewrite doAddEnumConst(CompilationUnit astRoot) {
  SimpleName node = fOriginalNode;

  ASTNode newTypeDecl = astRoot.findDeclaringNode(fSenderBinding);
  if (newTypeDecl == null) {
    astRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    newTypeDecl = astRoot.findDeclaringNode(fSenderBinding.getKey());
  }

  if (newTypeDecl != null) {
    AST ast = newTypeDecl.getAST();

    ASTRewrite rewrite = ASTRewrite.create(ast);

    EnumConstantDeclaration constDecl = ast.newEnumConstantDeclaration();
    constDecl.setName(ast.newSimpleName(node.getIdentifier()));

    ListRewrite listRewriter =
        rewrite.getListRewrite(newTypeDecl, EnumDeclaration.ENUM_CONSTANTS_PROPERTY);
    listRewriter.insertLast(constDecl, null);

    addLinkedPosition(rewrite.track(constDecl.getName()), false, KEY_NAME);

    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:28,代码来源:NewVariableCorrectionProposal.java

示例10: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
  CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(fInvocationNode);
  ASTNode typeDecl = astRoot.findDeclaringNode(fSenderBinding);
  ASTNode newTypeDecl = null;
  if (typeDecl != null) {
    newTypeDecl = typeDecl;
  } else {
    astRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    newTypeDecl = astRoot.findDeclaringNode(fSenderBinding.getKey());
  }
  createImportRewrite(astRoot);

  if (newTypeDecl instanceof AnnotationTypeDeclaration) {
    AnnotationTypeDeclaration newAnnotationTypeDecl = (AnnotationTypeDeclaration) newTypeDecl;

    ASTRewrite rewrite = ASTRewrite.create(astRoot.getAST());

    AnnotationTypeMemberDeclaration newStub = getStub(rewrite, newAnnotationTypeDecl);

    List<BodyDeclaration> members = newAnnotationTypeDecl.bodyDeclarations();
    int insertIndex = members.size();

    ListRewrite listRewriter =
        rewrite.getListRewrite(
            newAnnotationTypeDecl, AnnotationTypeDeclaration.BODY_DECLARATIONS_PROPERTY);
    listRewriter.insertAt(newStub, insertIndex, null);

    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:33,代码来源:NewAnnotationMemberProposal.java

示例11: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
  CompilationUnit astRoot = ASTResolving.findParentCompilationUnit(fNode);
  ASTNode typeDecl = astRoot.findDeclaringNode(fSenderBinding);
  ASTNode newTypeDecl = null;
  boolean isInDifferentCU;
  if (typeDecl != null) {
    isInDifferentCU = false;
    newTypeDecl = typeDecl;
  } else {
    isInDifferentCU = true;
    astRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    newTypeDecl = astRoot.findDeclaringNode(fSenderBinding.getKey());
  }
  createImportRewrite(astRoot);

  if (newTypeDecl != null) {
    ASTRewrite rewrite = ASTRewrite.create(astRoot.getAST());

    MethodDeclaration newStub = getStub(rewrite, newTypeDecl);

    ChildListPropertyDescriptor property = ASTNodes.getBodyDeclarationsProperty(newTypeDecl);
    List<BodyDeclaration> members = ASTNodes.getBodyDeclarations(newTypeDecl);

    int insertIndex;
    if (isConstructor()) {
      insertIndex = findConstructorInsertIndex(members);
    } else if (!isInDifferentCU) {
      insertIndex = findMethodInsertIndex(members, fNode.getStartPosition());
    } else {
      insertIndex = members.size();
    }
    ListRewrite listRewriter = rewrite.getListRewrite(newTypeDecl, property);
    listRewriter.insertAt(newStub, insertIndex, null);

    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:40,代码来源:AbstractMethodCorrectionProposal.java

示例12: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
  CompilationUnit astRoot = (CompilationUnit) fInvocationNode.getRoot();
  ASTNode methodDecl = astRoot.findDeclaringNode(fSenderBinding);
  ASTNode newMethodDecl = null;
  if (methodDecl != null) {
    newMethodDecl = methodDecl;
  } else {
    astRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    newMethodDecl = astRoot.findDeclaringNode(fSenderBinding.getKey());
  }
  createImportRewrite(astRoot);

  if (newMethodDecl instanceof MethodDeclaration) {
    MethodDeclaration decl = (MethodDeclaration) newMethodDecl;

    ASTRewrite rewrite = ASTRewrite.create(astRoot.getAST());
    if (fParameterChanges != null) {
      modifyParameters(rewrite, decl);
    }
    if (fExceptionChanges != null) {
      modifyExceptions(rewrite, decl);
    }
    return rewrite;
  }
  return null;
}
 
开发者ID:eclipse,项目名称:che,代码行数:28,代码来源:ChangeMethodSignatureProposal.java

示例13: resolveRpcPair

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
/**
 * Finds the related RPC components for a given method: declaring type & peer
 * type.
 * 
 * @param node the method's SimpleName AST node.
 * @param peerResolver mapping function for the associated type.
 * @return the {@link RpcPair} encapsulation of the related components.
 */
protected static RpcPair resolveRpcPair(ASTNode node,
    PeerTypeResolver peerResolver) {

  // Find the source method declaration and its declaring type
  MethodDeclaration methodDecl = ASTResolving.findParentMethodDeclaration(node);
  TypeDeclaration typeDecl = (TypeDeclaration) ASTResolving.findAncestor(
      node, ASTNode.TYPE_DECLARATION);
  assert (typeDecl != null);

  // Find the associated sync/async peer type declaration (update target)
  IType dstType = peerResolver.getPeerType(typeDecl);
  if (dstType == null) {
    return null;
  }

  CompilationUnit astRoot = ASTResolving.createQuickFixAST(
      dstType.getCompilationUnit(), null);
  TypeDeclaration dstTypeDecl = JavaASTUtils.findTypeDeclaration(astRoot,
      dstType.getFullyQualifiedName('.'));

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

  return new RpcPair(typeDecl, methodDecl, dstTypeDecl);
}
 
开发者ID:gwt-plugins,项目名称:gwt-eclipse-plugin,代码行数:35,代码来源:AbstractUpdateSignatureProposal.java

示例14: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
	ASTNode boundNode= fAstRoot.findDeclaringNode(fBinding);
	ASTNode declNode= null;
	CompilationUnit newRoot= fAstRoot;
	if (boundNode != null) {
		declNode= boundNode; // is same CU
	} else {
		newRoot= ASTResolving.createQuickFixAST(getCompilationUnit(), null);
		declNode= newRoot.findDeclaringNode(fBinding.getKey());
	}
	ImportRewrite imports= createImportRewrite(newRoot);

	if (declNode instanceof TypeDeclaration) {
		AST ast= declNode.getAST();
		ASTRewrite rewrite= ASTRewrite.create(ast);

		ImportRewriteContext importRewriteContext= new ContextSensitiveImportRewriteContext(declNode, imports);
		Type newInterface= imports.addImport(fNewInterface, ast, importRewriteContext);
		ListRewrite listRewrite= rewrite.getListRewrite(declNode, TypeDeclaration.SUPER_INTERFACE_TYPES_PROPERTY);
		listRewrite.insertLast(newInterface, null);

		// set up linked mode
		final String KEY_TYPE= "type"; //$NON-NLS-1$
		addLinkedPosition(rewrite.track(newInterface), true, KEY_TYPE);
		return rewrite;
	}
	return null;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:30,代码来源:ImplementInterfaceProposal.java

示例15: getRewrite

import org.eclipse.jdt.internal.ui.text.correction.ASTResolving; //导入方法依赖的package包/类
@Override
protected ASTRewrite getRewrite() throws CoreException {
	CompilationUnit astRoot= ASTResolving.findParentCompilationUnit(fInvocationNode);
	ASTNode typeDecl= astRoot.findDeclaringNode(fSenderBinding);
	ASTNode newTypeDecl= null;
	if (typeDecl != null) {
		newTypeDecl= typeDecl;
	} else {
		astRoot= ASTResolving.createQuickFixAST(getCompilationUnit(), null);
		newTypeDecl= astRoot.findDeclaringNode(fSenderBinding.getKey());
	}
	createImportRewrite(astRoot);

	if (newTypeDecl instanceof AnnotationTypeDeclaration) {
		AnnotationTypeDeclaration newAnnotationTypeDecl= (AnnotationTypeDeclaration) newTypeDecl;
		
		ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST());

		AnnotationTypeMemberDeclaration newStub= getStub(rewrite, newAnnotationTypeDecl);

		List<BodyDeclaration> members= newAnnotationTypeDecl.bodyDeclarations();
		int insertIndex= members.size();

		ListRewrite listRewriter= rewrite.getListRewrite(newAnnotationTypeDecl, AnnotationTypeDeclaration.BODY_DECLARATIONS_PROPERTY);
		listRewriter.insertAt(newStub, insertIndex, null);

		return rewrite;
	}
	return null;
}
 
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:31,代码来源:NewAnnotationMemberProposal.java


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