本文整理汇总了Java中org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil.getMethodDeclarationNode方法的典型用法代码示例。如果您正苦于以下问题:Java ASTNodeSearchUtil.getMethodDeclarationNode方法的具体用法?Java ASTNodeSearchUtil.getMethodDeclarationNode怎么用?Java ASTNodeSearchUtil.getMethodDeclarationNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil
的用法示例。
在下文中一共展示了ASTNodeSearchUtil.getMethodDeclarationNode方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getEnhancedForStatements
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private static Set<EnhancedForStatement> getEnhancedForStatements(IMethod method, IProgressMonitor pm)
throws JavaModelException {
ICompilationUnit iCompilationUnit = method.getCompilationUnit();
// get the ASTParser of the method
CompilationUnit compilationUnit = RefactoringASTParser.parseWithASTProvider(iCompilationUnit, true,
new SubProgressMonitor(pm, 1));
// get the method declaration ASTNode.
MethodDeclaration methodDeclarationNode = ASTNodeSearchUtil.getMethodDeclarationNode(method, compilationUnit);
final Set<EnhancedForStatement> statements = new LinkedHashSet<EnhancedForStatement>();
// extract all enhanced for loop statements in the method.
methodDeclarationNode.accept(new ASTVisitor() {
@Override
public boolean visit(EnhancedForStatement node) {
statements.add(node);
return super.visit(node);
}
});
return statements;
}
开发者ID:mdarefin,项目名称:Convert-For-Each-Loop-to-Lambda-Expression-Eclipse-Plugin,代码行数:25,代码来源:ForeachLoopToLambdaRefactoring.java
示例2: getRealMethodDeclarationNode
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
public static org.eclipse.jdt.core.dom.MethodDeclaration getRealMethodDeclarationNode(org.eclipse.jdt.core.IMethod sourceMethod, org.eclipse.jdt.core.dom.CompilationUnit cuUnit) throws JavaModelException {
MethodDeclaration methodDeclarationNode = ASTNodeSearchUtil.getMethodDeclarationNode(sourceMethod, cuUnit);
if (isGenerated(methodDeclarationNode)) {
IType declaringType = sourceMethod.getDeclaringType();
Stack<IType> typeStack = new Stack<IType>();
while (declaringType != null) {
typeStack.push(declaringType);
declaringType = declaringType.getDeclaringType();
}
IType rootType = typeStack.pop();
org.eclipse.jdt.core.dom.AbstractTypeDeclaration typeDeclaration = findTypeDeclaration(rootType, cuUnit.types());
while (!typeStack.isEmpty() && typeDeclaration != null) {
typeDeclaration = findTypeDeclaration(typeStack.pop(), typeDeclaration.bodyDeclarations());
}
if (typeStack.isEmpty() && typeDeclaration != null) {
String methodName = sourceMethod.getElementName();
for (Object declaration : typeDeclaration.bodyDeclarations()) {
if (declaration instanceof org.eclipse.jdt.core.dom.MethodDeclaration) {
org.eclipse.jdt.core.dom.MethodDeclaration methodDeclaration = (org.eclipse.jdt.core.dom.MethodDeclaration) declaration;
if (methodDeclaration.getName().toString().equals(methodName)) {
return methodDeclaration;
}
}
}
}
}
return methodDeclarationNode;
}
示例3: getMethodDeclaration
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private MethodDeclaration getMethodDeclaration(IMethod method, Optional<IProgressMonitor> pm)
throws JavaModelException {
ITypeRoot root = method.getCompilationUnit();
CompilationUnit unit = this.getCompilationUnit(root,
new SubProgressMonitor(pm.orElseGet(NullProgressMonitor::new), IProgressMonitor.UNKNOWN));
MethodDeclaration declaration = ASTNodeSearchUtil.getMethodDeclarationNode(method, unit);
return declaration;
}
开发者ID:ponder-lab,项目名称:Migrate-Skeletal-Implementation-to-Interface-Refactoring,代码行数:9,代码来源:MigrateSkeletalImplementationToInterfaceRefactoringProcessor.java
示例4: resolveMethodBinding
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private IMethodBinding resolveMethodBinding(IMethod method, Optional<IProgressMonitor> monitor)
throws JavaModelException {
MethodDeclaration methodDeclarationNode = ASTNodeSearchUtil.getMethodDeclarationNode(method,
getCompilationUnit(method.getTypeRoot(),
new SubProgressMonitor(monitor.orElseGet(NullProgressMonitor::new), IProgressMonitor.UNKNOWN)));
if (methodDeclarationNode != null)
return methodDeclarationNode.resolveBinding();
else
return null;
}
开发者ID:ponder-lab,项目名称:Migrate-Skeletal-Implementation-to-Interface-Refactoring,代码行数:12,代码来源:MigrateSkeletalImplementationToInterfaceRefactoringProcessor.java
示例5: resolveReturnTypeBinding
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private ITypeBinding resolveReturnTypeBinding(IMethod method, Optional<IProgressMonitor> monitor)
throws JavaModelException {
MethodDeclaration methodDeclarationNode = ASTNodeSearchUtil.getMethodDeclarationNode(method,
getCompilationUnit(method.getTypeRoot(),
new SubProgressMonitor(monitor.orElseGet(NullProgressMonitor::new), IProgressMonitor.UNKNOWN)));
if (methodDeclarationNode != null) {
Type returnType = methodDeclarationNode.getReturnType2();
return returnType.resolveBinding();
} else
return null;
}
开发者ID:ponder-lab,项目名称:Migrate-Skeletal-Implementation-to-Interface-Refactoring,代码行数:13,代码来源:MigrateSkeletalImplementationToInterfaceRefactoringProcessor.java
示例6: addDeclarationUpdate
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private void addDeclarationUpdate(TextChangeManager manager) throws CoreException {
if (getDelegateUpdating()) {
// create the delegate
CompilationUnitRewrite rewrite = new CompilationUnitRewrite(getDeclaringCU());
rewrite.setResolveBindings(true);
MethodDeclaration methodDeclaration =
ASTNodeSearchUtil.getMethodDeclarationNode(getMethod(), rewrite.getRoot());
DelegateMethodCreator creator = new DelegateMethodCreator();
creator.setDeclaration(methodDeclaration);
creator.setDeclareDeprecated(getDeprecateDelegates());
creator.setSourceRewrite(rewrite);
creator.setCopy(true);
creator.setNewElementName(getNewElementName());
creator.prepareDelegate();
creator.createEdit();
CompilationUnitChange cuChange = rewrite.createChange(true);
if (cuChange != null) {
cuChange.setKeepPreviewEdits(true);
manager.manage(getDeclaringCU(), cuChange);
}
}
String editName = RefactoringCoreMessages.RenameMethodRefactoring_update_declaration;
ISourceRange nameRange = getMethod().getNameRange();
ReplaceEdit replaceEdit =
new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), getNewElementName());
addTextEdit(manager.get(getDeclaringCU()), editName, replaceEdit);
}
示例7: addMethodDelegate
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private void addMethodDelegate(IMethod getter, String newName, CompilationUnitRewrite rewrite)
throws JavaModelException {
MethodDeclaration declaration =
ASTNodeSearchUtil.getMethodDeclarationNode(getter, rewrite.getRoot());
DelegateCreator creator = new DelegateMethodCreator();
creator.setDeclareDeprecated(fDelegateDeprecation);
creator.setDeclaration(declaration);
creator.setNewElementName(newName);
creator.setSourceRewrite(rewrite);
creator.prepareDelegate();
creator.createEdit();
}
示例8: createRenameChanges
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
/**
* Creates the necessary changes for the renaming of the type parameter.
*
* @param monitor the progress monitor to display progress
* @return the status of the operation
* @throws CoreException if the change could not be generated
*/
private RefactoringStatus createRenameChanges(IProgressMonitor monitor) throws CoreException {
Assert.isNotNull(monitor);
RefactoringStatus status = new RefactoringStatus();
try {
monitor.beginTask(RefactoringCoreMessages.RenameTypeParameterRefactoring_searching, 2);
ICompilationUnit cu = fTypeParameter.getDeclaringMember().getCompilationUnit();
CompilationUnit root = RefactoringASTParser.parseWithASTProvider(cu, true, null);
CompilationUnitRewrite rewrite = new CompilationUnitRewrite(cu, root);
IMember member = fTypeParameter.getDeclaringMember();
ASTNode declaration = null;
if (member instanceof IMethod) {
declaration = ASTNodeSearchUtil.getMethodDeclarationNode((IMethod) member, root);
} else if (member instanceof IType) {
declaration = ASTNodeSearchUtil.getAbstractTypeDeclarationNode((IType) member, root);
} else {
JavaPlugin.logErrorMessage(
"Unexpected sub-type of IMember: " + member.getClass().getName()); // $NON-NLS-1$
Assert.isTrue(false);
}
monitor.worked(1);
RenameTypeParameterVisitor visitor =
new RenameTypeParameterVisitor(rewrite, fTypeParameter.getNameRange(), status);
if (declaration != null) declaration.accept(visitor);
fChange = visitor.getResult();
} finally {
monitor.done();
}
return status;
}
示例9: checkMethodBody
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
protected static RefactoringStatus checkMethodBody(IMethod method, IProgressMonitor pm) {
RefactoringStatus status = new RefactoringStatus();
ITypeRoot root = method.getCompilationUnit();
CompilationUnit unit = RefactoringASTParser.parseWithASTProvider(root, false, new SubProgressMonitor(pm, 1));
MethodDeclaration declaration;
try {
declaration = ASTNodeSearchUtil.getMethodDeclarationNode(method, unit);
if (declaration != null) {
Block body = declaration.getBody();
if (body != null) {
@SuppressWarnings("rawtypes")
List statements = body.statements();
if (!statements.isEmpty()) {
// TODO for now.
addWarning(status, Messages.ForEachLoopToLambdaRefactoring_NoMethodsWithStatements, method);
}
}
}
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return status;
}
开发者ID:mdarefin,项目名称:Convert-For-Each-Loop-to-Lambda-Expression-Eclipse-Plugin,代码行数:30,代码来源:ForeachLoopToLambdaRefactoring.java
示例10: addDeclarationUpdate
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private void addDeclarationUpdate(TextChangeManager manager) throws CoreException {
if (getDelegateUpdating()) {
// create the delegate
CompilationUnitRewrite rewrite= new CompilationUnitRewrite(getDeclaringCU());
rewrite.setResolveBindings(true);
MethodDeclaration methodDeclaration= ASTNodeSearchUtil.getMethodDeclarationNode(getMethod(), rewrite.getRoot());
DelegateMethodCreator creator= new DelegateMethodCreator();
creator.setDeclaration(methodDeclaration);
creator.setDeclareDeprecated(getDeprecateDelegates());
creator.setSourceRewrite(rewrite);
creator.setCopy(true);
creator.setNewElementName(getNewElementName());
creator.prepareDelegate();
creator.createEdit();
CompilationUnitChange cuChange= rewrite.createChange(true);
if (cuChange != null) {
cuChange.setKeepPreviewEdits(true);
manager.manage(getDeclaringCU(), cuChange);
}
}
String editName= RefactoringCoreMessages.RenameMethodRefactoring_update_declaration;
ISourceRange nameRange= getMethod().getNameRange();
ReplaceEdit replaceEdit= new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), getNewElementName());
addTextEdit(manager.get(getDeclaringCU()), editName, replaceEdit);
}
开发者ID:trylimits,项目名称:Eclipse-Postfix-Code-Completion,代码行数:28,代码来源:RenameNonVirtualMethodProcessor.java
示例11: addMethodDelegate
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
private void addMethodDelegate(IMethod getter, String newName, CompilationUnitRewrite rewrite) throws JavaModelException {
MethodDeclaration declaration= ASTNodeSearchUtil.getMethodDeclarationNode(getter, rewrite.getRoot());
DelegateCreator creator= new DelegateMethodCreator();
creator.setDeclareDeprecated(fDelegateDeprecation);
creator.setDeclaration(declaration);
creator.setNewElementName(newName);
creator.setSourceRewrite(rewrite);
creator.prepareDelegate();
creator.createEdit();
}
示例12: createRenameChanges
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
/**
* Creates the necessary changes for the renaming of the type parameter.
*
* @param monitor
* the progress monitor to display progress
* @return the status of the operation
* @throws CoreException
* if the change could not be generated
*/
private RefactoringStatus createRenameChanges(IProgressMonitor monitor) throws CoreException {
Assert.isNotNull(monitor);
RefactoringStatus status= new RefactoringStatus();
try {
monitor.beginTask(RefactoringCoreMessages.RenameTypeParameterRefactoring_searching, 2);
ICompilationUnit cu= fTypeParameter.getDeclaringMember().getCompilationUnit();
CompilationUnit root= RefactoringASTParser.parseWithASTProvider(cu, true, null);
CompilationUnitRewrite rewrite= new CompilationUnitRewrite(cu, root);
IMember member= fTypeParameter.getDeclaringMember();
ASTNode declaration= null;
if (member instanceof IMethod) {
declaration= ASTNodeSearchUtil.getMethodDeclarationNode((IMethod) member, root);
} else if (member instanceof IType) {
declaration= ASTNodeSearchUtil.getAbstractTypeDeclarationNode((IType) member, root);
} else {
JavaPlugin.logErrorMessage("Unexpected sub-type of IMember: " + member.getClass().getName()); //$NON-NLS-1$
Assert.isTrue(false);
}
monitor.worked(1);
RenameTypeParameterVisitor visitor= new RenameTypeParameterVisitor(rewrite, fTypeParameter.getNameRange(), status);
if (declaration != null)
declaration.accept(visitor);
fChange= visitor.getResult();
} finally {
monitor.done();
}
return status;
}
示例13: getRealMethodDeclarationNode
import org.eclipse.jdt.internal.corext.refactoring.structure.ASTNodeSearchUtil; //导入方法依赖的package包/类
public static org.eclipse.jdt.core.dom.MethodDeclaration getRealMethodDeclarationNode(org.eclipse.jdt.core.IMethod sourceMethod, org.eclipse.jdt.core.dom.CompilationUnit cuUnit) throws JavaModelException {
MethodDeclaration methodDeclarationNode = ASTNodeSearchUtil.getMethodDeclarationNode(sourceMethod, cuUnit);
if (isGenerated(methodDeclarationNode)) {
IType declaringType = sourceMethod.getDeclaringType();
Stack<IType> typeStack = new Stack<IType>();
while (declaringType != null) {
typeStack.push(declaringType);
declaringType = declaringType.getDeclaringType();
}
IType rootType = typeStack.pop();
org.eclipse.jdt.core.dom.AbstractTypeDeclaration typeDeclaration = findTypeDeclaration(rootType, cuUnit.types());
while (!typeStack.isEmpty() && typeDeclaration != null) {
typeDeclaration = findTypeDeclaration(typeStack.pop(), typeDeclaration.bodyDeclarations());
}
if (typeStack.isEmpty() && typeDeclaration != null) {
String methodName = sourceMethod.getElementName();
for (Object declaration : typeDeclaration.bodyDeclarations()) {
if (declaration instanceof org.eclipse.jdt.core.dom.MethodDeclaration) {
org.eclipse.jdt.core.dom.MethodDeclaration methodDeclaration = (org.eclipse.jdt.core.dom.MethodDeclaration) declaration;
if (methodDeclaration.getName().toString().equals(methodName)) {
return methodDeclaration;
}
}
}
}
}
return methodDeclarationNode;
}