private SignatureAnnotationRewriteOperation createChangeOverriddenReturnOperation(ICompilationUnit cu, MethodDeclaration declaration, String annotationNameLabel) { IMethodBinding methodDeclBinding= declaration.resolveBinding(); if (methodDeclBinding == null) return null; IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) return null; declaration= findMethodDeclarationInUnit(cu, overridden, false); if (declaration == null) return null; // TODO(SH): decide whether we want to propose overwriting existing annotations in super // if (hasNullAnnotation(declaration)) // if overridden has explicit declaration don't propose to change it // return null; String message= Messages.format(FixMessages.NullAnnotationsRewriteOperations_change_overridden_return_nullness, new String[] { overridden.getName(), annotationNameLabel }); return new ReturnAnnotationRewriteOperation(declaration, message, this); }
private int findInHierarchyWithAST(CompilationUnit astRoot, IMethod method) throws JavaModelException { ASTNode node= NodeFinder.perform(astRoot, method.getNameRange()); if (node instanceof SimpleName && node.getParent() instanceof MethodDeclaration) { IMethodBinding binding= ((MethodDeclaration) node.getParent()).resolveBinding(); if (binding != null) { IMethodBinding defining= Bindings.findOverriddenMethod(binding, true); if (defining != null) { if (JdtFlags.isAbstract(defining)) { return JavaElementImageDescriptor.IMPLEMENTS; } else { return JavaElementImageDescriptor.OVERRIDES; } } return 0; } } return -1; }
private int findInHierarchyWithAST(CompilationUnit astRoot, IMethod method) throws JavaModelException { ASTNode node= NodeFinder.perform(astRoot, method.getNameRange()); if (node instanceof SimpleName && node.getParent() instanceof MethodDeclaration) { IMethodBinding binding= ((MethodDeclaration) node.getParent()).resolveBinding(); if (binding != null) { IMethodBinding defining= Bindings.findOverriddenMethod(binding, true); if (defining != null) { if (JdtFlags.isAbstract(defining)) { return JavaElementImageDescriptor.IMPLEMENTS; } else { return JavaElementImageDescriptor.OVERRIDES; } } return 0; } } return -1; }
private SignatureAnnotationRewriteOperation createChangeOverriddenParameterOperation(ICompilationUnit cu, MethodDeclaration declaration, ASTNode selectedNode, String annotationNameLabel) { IMethodBinding methodDeclBinding= declaration.resolveBinding(); if (methodDeclBinding == null) return null; IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) return null; MethodDeclaration overriddenDeclaration= findMethodDeclarationInUnit(cu, overridden, false); if (overriddenDeclaration == null) return null; String message= Messages.format(FixMessages.NullAnnotationsRewriteOperations_change_overridden_parameter_nullness, new String[] { overridden.getName(), annotationNameLabel }); ParameterAnnotationRewriteOperation.IndexedParameter parameter= findParameterDeclaration(selectedNode); // parameter.name is determined from the current method, but this name will not be used here if (parameter == null) return null; return new ParameterAnnotationRewriteOperation(overriddenDeclaration, parameter.index, message, this); }
private int findInHierarchyWithAST(CompilationUnit astRoot, IMethod method) throws JavaModelException { ASTNode node= NodeFinder.perform(astRoot, method.getNameRange()); if (node instanceof SimpleName && node.getParent() instanceof MethodDeclaration) { IMethodBinding binding= ((MethodDeclaration) node.getParent()).resolveBinding(); if (binding != null) { IMethodBinding defining= Bindings.findOverriddenMethod(binding, true); if (defining != null) { if (JdtFlags.isAbstract(defining)) { return JavaElementImageDescriptor.IMPLEMENTS; } else { return JavaElementImageDescriptor.OVERRIDES; } } return 0; } } return -1; }
private static SignatureAnnotationRewriteOperation createChangeOverriddenReturnOperation(CompilationUnit compilationUnit, ICompilationUnit cu, MethodDeclaration declaration, boolean allowRemove, String annotationToAdd, String annotationToRemove, String annotationNameLabel) { IMethodBinding methodDeclBinding= declaration.resolveBinding(); if (methodDeclBinding == null) return null; IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) return null; compilationUnit= findCUForMethod(compilationUnit, cu, overridden); if (compilationUnit == null) return null; ASTNode methodDecl= compilationUnit.findDeclaringNode(overridden.getKey()); if (methodDecl == null) return null; declaration= (MethodDeclaration) methodDecl; // TODO(SH): decide whether we want to propose overwriting existing annotations in super // if (hasNullAnnotation(declaration)) // if overridden has explicit declaration don't propose to change it // return null; String message= Messages.format(FixMessages.NullAnnotationsRewriteOperations_change_overridden_return_nullness, new String[] { overridden.getName(), annotationNameLabel }); return new ReturnAnnotationRewriteOperation(compilationUnit, declaration, annotationToAdd, annotationToRemove, allowRemove, message); }
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) { return;
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) { return;
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) { return;
private static SignatureAnnotationRewriteOperation createChangeOverriddenParameterOperation(CompilationUnit compilationUnit, ICompilationUnit cu, MethodDeclaration declaration, ASTNode selectedNode, boolean allowRemove, String annotationToAdd, String annotationToRemove, String annotationNameLabel) { IMethodBinding methodDeclBinding= declaration.resolveBinding(); if (methodDeclBinding == null) return null; IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null) return null; compilationUnit= findCUForMethod(compilationUnit, cu, overridden); if (compilationUnit == null) return null; ASTNode methodDecl= compilationUnit.findDeclaringNode(overridden.getKey()); if (methodDecl == null) return null; declaration= (MethodDeclaration) methodDecl; String message= Messages.format(FixMessages.NullAnnotationsRewriteOperations_change_overridden_parameter_nullness, new String[] { overridden.getName(), annotationNameLabel }); String paramName= findAffectedParameterName(selectedNode); return new ParameterAnnotationRewriteOperation(compilationUnit, declaration, annotationToAdd, annotationToRemove, paramName, allowRemove, message); }
/** * Opens and reveals the defining method. */ public void open() { CompilationUnit ast= SharedASTProviderCore.getAST(fJavaElement, SharedASTProviderCore.WAIT_ACTIVE_ONLY, null); if (ast != null) { ASTNode node= ast.findDeclaringNode(fAstNodeKey); if (node instanceof MethodDeclaration) { try { IMethodBinding methodBinding= ((MethodDeclaration)node).resolveBinding(); IMethodBinding definingMethodBinding= Bindings.findOverriddenMethod(methodBinding, true); if (definingMethodBinding != null) { IJavaElement definingMethod= definingMethodBinding.getJavaElement(); if (definingMethod != null) { JavaUI.openInEditor(definingMethod, true, true); return; } } } catch (CoreException e) { ExceptionHandler.handle(e, JavaEditorMessages.OverrideIndicatorManager_open_error_title, JavaEditorMessages.OverrideIndicatorManager_open_error_messageHasLogEntry); return; } } } String title= JavaEditorMessages.OverrideIndicatorManager_open_error_title; String message= JavaEditorMessages.OverrideIndicatorManager_open_error_message; MessageDialog.openError(JavaPlugin.getActiveWorkbenchShell(), title, message); } }
/** * Opens and reveals the defining method. */ public void open() { CompilationUnit ast= SharedASTProvider.getAST(fJavaElement, SharedASTProvider.WAIT_ACTIVE_ONLY, null); if (ast != null) { ASTNode node= ast.findDeclaringNode(fAstNodeKey); if (node instanceof MethodDeclaration) { try { IMethodBinding methodBinding= ((MethodDeclaration)node).resolveBinding(); IMethodBinding definingMethodBinding= Bindings.findOverriddenMethod(methodBinding, true); if (definingMethodBinding != null) { IJavaElement definingMethod= definingMethodBinding.getJavaElement(); if (definingMethod != null) { JavaUI.openInEditor(definingMethod, true, true); return; } } } catch (CoreException e) { ExceptionHandler.handle(e, JavaEditorMessages.OverrideIndicatorManager_open_error_title, JavaEditorMessages.OverrideIndicatorManager_open_error_messageHasLogEntry); return; } } } String title= JavaEditorMessages.OverrideIndicatorManager_open_error_title; String message= JavaEditorMessages.OverrideIndicatorManager_open_error_message; MessageDialog.openError(JavaPlugin.getActiveWorkbenchShell(), title, message); } }
public boolean visit(MethodDeclaration node) { IMethodBinding binding= node.resolveBinding(); if (binding != null) { IMethodBinding definingMethod= Bindings.findOverriddenMethod(binding, true); if (definingMethod != null) { ITypeBinding definingType= definingMethod.getDeclaringClass(); String qualifiedMethodName= definingType.getQualifiedName() + "." + binding.getName(); //$NON-NLS-1$ boolean isImplements= JdtFlags.isAbstract(definingMethod); String text; if (isImplements) text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_implements, qualifiedMethodName); else text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_overrides, qualifiedMethodName); SimpleName name= node.getName(); Position position= new Position(name.getStartPosition(), name.getLength()); annotationMap.put( new OverrideIndicator(isImplements, text, binding.getKey()), position); } } return true; } });
/** * Opens and reveals the defining method. */ public void open() { CompilationUnit ast= ASTProvider.getASTProvider().getAST(fJavaElement, ASTProvider.WAIT_ACTIVE_ONLY, null); if (ast != null) { ASTNode node= ast.findDeclaringNode(fAstNodeKey); if (node instanceof MethodDeclaration) { try { IMethodBinding methodBinding= ((MethodDeclaration)node).resolveBinding(); IMethodBinding definingMethodBinding= Bindings.findOverriddenMethod(methodBinding, true); if (definingMethodBinding != null) { IJavaElement definingMethod= definingMethodBinding.getJavaElement(); if (definingMethod != null) { JavaUI.openInEditor(definingMethod, true, true); return; } } } catch (CoreException e) { ExceptionHandler.handle(e, JavaEditorMessages.OverrideIndicatorManager_open_error_title, JavaEditorMessages.OverrideIndicatorManager_open_error_messageHasLogEntry); return; } } } String title= JavaEditorMessages.OverrideIndicatorManager_open_error_title; String message= JavaEditorMessages.OverrideIndicatorManager_open_error_message; MessageDialog.openError(JavaPlugin.getActiveWorkbenchShell(), title, message); } }
@Override public boolean visit(MethodDeclaration node) { IMethodBinding binding= node.resolveBinding(); if (binding != null) { IMethodBinding definingMethod= Bindings.findOverriddenMethod(binding, true); if (definingMethod != null) { ITypeBinding definingType= definingMethod.getDeclaringClass(); String qualifiedMethodName= definingType.getQualifiedName() + "." + binding.getName(); //$NON-NLS-1$ boolean isImplements= JdtFlags.isAbstract(definingMethod); String text; if (isImplements) text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_implements, BasicElementLabels.getJavaElementName(qualifiedMethodName)); else text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_overrides, BasicElementLabels.getJavaElementName(qualifiedMethodName)); SimpleName name= node.getName(); Position position= new Position(name.getStartPosition(), name.getLength()); annotationMap.put( new OverrideIndicator(isImplements, text, binding.getKey()), position); } } return true; } });
@Override public boolean visit(MethodDeclaration node) { IMethodBinding binding= node.resolveBinding(); if (binding != null) { IMethodBinding definingMethod= Bindings.findOverriddenMethod(binding, true); if (definingMethod != null) { ITypeBinding definingType= definingMethod.getDeclaringClass(); String qualifiedMethodName= definingType.getQualifiedName() + "." + binding.getName(); //$NON-NLS-1$ boolean isImplements= JdtFlags.isAbstract(definingMethod); String text; if (isImplements) text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_implements, BasicElementLabels.getJavaElementName(qualifiedMethodName)); else text= Messages.format(JavaEditorMessages.OverrideIndicatorManager_overrides, BasicElementLabels.getJavaElementName(qualifiedMethodName)); SimpleName name= node.getName(); Position position= new Position(name.getStartPosition(), name.getLength()); annotationMap.put( new OverrideIndicator(isImplements, text, binding.getKey()), position); } } return true; } });
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null || overridden.getReturnType() == methodDeclBinding.getReturnType()) { return;
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null || overridden.getReturnType() == returnType) { return;
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null || overridden.getReturnType() == returnType) { return;
IMethodBinding overridden= Bindings.findOverriddenMethod(methodDeclBinding, false); if (overridden == null || overridden.getReturnType() == returnType) { return;