List of usage examples for org.eclipse.jdt.core.dom IMethodBinding equals
@Override public boolean equals(Object obj);
From source file:br.uff.ic.mergeguider.javaparser.ProjectAST.java
public List<MyMethodInvocation> getMethodCallers(MethodDeclaration methodDeclaration) { List<MyMethodInvocation> invocations = new ArrayList<>(); IMethodBinding methodDeclarationBinding = methodDeclaration.resolveBinding(); if (methodDeclarationBinding == null) { //Method does not have binding return null; }// w w w. j av a 2 s. com for (ClassLanguageContructs languageConstructsByClass : classesLanguageConstructs) { for (MyMethodInvocation methoInvocation : languageConstructsByClass.getMethodInvocations()) { IMethodBinding methodInvocationBinding = methoInvocation.getMethodInvocation() .resolveMethodBinding(); if (methodInvocationBinding == null) { //no binding continue; } if (methodDeclarationBinding.equals(methodInvocationBinding)) { invocations.add(methoInvocation); } } } return invocations; }
From source file:br.uff.ic.mergeguider.MergeGuider.java
public static boolean sameMethod(MyMethodDeclaration methodDeclaration, MyMethodInvocation methodInvocation) { IMethodBinding methodDeclarationBinding = methodDeclaration.getMethodDeclaration().resolveBinding(); IMethodBinding methodInvocationBinding = methodInvocation.getMethodInvocation().resolveMethodBinding(); if (methodDeclarationBinding != null && methodInvocationBinding != null && methodDeclarationBinding.equals(methodInvocationBinding)) { return true; } else {/*from www . j a v a2s. com*/ return false; } }
From source file:org.eclipse.objectteams.otdt.internal.ui.text.correction.MappingProposalSubProcessor.java
License:Open Source License
static ASTRewriteCorrectionProposal getMaterializeInferredCalloutSelfCallProposal(ICompilationUnit cu, TypeDeclaration enclosingType, MethodInvocation selectedNode) throws JavaModelException { final IMethodBinding resolvedMethod = selectedNode.resolveMethodBinding(); if (resolvedMethod == null) return null; IMethodMemento memento = new IMethodMemento() { public boolean isEqualTo(IMethodBinding other) { return resolvedMethod.equals(other); }/*w w w. j ava 2 s . c o m*/ }; return getMaterializeInferredCalloutProposal(cu, null, enclosingType, memento, InferenceKind.SELFCALL); }
From source file:org.eclipse.recommenders.args.completion.rcp.usagedb.ParamInfo.java
License:Open Source License
/** * Analyze detailed information of the parameter expression * and fill in the corresponding fields. * /*from w w w . j ava 2 s. co m*/ * @param param - the parameter expression * @param enclosingType - the enclosing type */ public final void setParamExpr(final Expression param, final TypeDeclaration enclosingType) { String sType = resolveStructureType(param); this.structureType = sType; if (sType.equals("MethodInvocation")) { methodInvType = new MethodInvocationType(); MethodInvocation mi = (MethodInvocation) param; String methodName = mi.getName().getIdentifier(); methodInvType.setMethodName(methodName); //Now not consider the modifier of a method methodInvType.setModifier("null"); methodInvType.setDeclareType("null"); Expression invokeExpr = mi.getExpression(); //local method if (invokeExpr == null) { String enclosingTypeName = enclosingType.resolveBinding().getErasure().getQualifiedName(); methodInvType.setInvokeType(enclosingTypeName); methodInvType.setFirstElementType(enclosingTypeName); ITypeBinding tpBinding = enclosingType.resolveBinding(); do { for (IMethodBinding method : tpBinding.getDeclaredMethods()) { if (method.equals(mi.resolveMethodBinding())) { methodInvType.setDeclareType(tpBinding.getErasure().getQualifiedName()); } } tpBinding = tpBinding.getSuperclass(); } while (tpBinding != null); // }while((tpBinding = tpBinding.getSuperclass())!= null); } else { ITypeBinding invokeType = invokeExpr.resolveTypeBinding(); /*for(IMethodBinding method: invokeType.getDeclaredMethods()) { if (method.equals(mi.resolveMethodBinding())) { if (Modifier.isStatic(method.getModifiers())) methodInvType.setModifier("static"); } }*/ if (invokeType != null) { methodInvType.setInvokeType(invokeType.getErasure().getQualifiedName()); ITypeBinding tpBinding = invokeType; do { for (IMethodBinding method : tpBinding.getDeclaredMethods()) { if (method.equals(mi.resolveMethodBinding())) { methodInvType.setDeclareType(tpBinding.getErasure().getQualifiedName()); } } tpBinding = tpBinding.getSuperclass(); } while (tpBinding != null); } else { methodInvType.setInvokeType("unknown"); } while (!((invokeExpr instanceof SimpleName) || (invokeExpr instanceof ThisExpression) || (invokeExpr instanceof ArrayAccess))) { if (invokeExpr instanceof MethodInvocation) { MethodInvocation temp = (MethodInvocation) invokeExpr; invokeExpr = temp.getExpression(); } else if (invokeExpr instanceof QualifiedName) { QualifiedName temp = (QualifiedName) invokeExpr; invokeExpr = temp.getQualifier(); } else if (invokeExpr instanceof FieldAccess) { FieldAccess temp = (FieldAccess) invokeExpr; invokeExpr = temp.getExpression(); } else { methodInvType.setFirstElementType("unknown"); break; } } if (invokeExpr instanceof SimpleName) { ITypeBinding firstBinding = invokeExpr.resolveTypeBinding(); if (firstBinding != null) { /*The strategy to check whether a method is static is quite simple. * We just check whether the variable name invoking the methods equals its type name */ String firstBindingStr = firstBinding.getErasure().getQualifiedName(); int pos = firstBindingStr.lastIndexOf("."); if (pos != -1) { firstBindingStr = firstBindingStr.substring(pos + 1, firstBindingStr.length()); SimpleName invokeName = (SimpleName) invokeExpr; if (invokeName.getIdentifier().equals(firstBindingStr)) { methodInvType.setModifier("static"); } } methodInvType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { methodInvType.setFirstElementType("unknown"); } } else if (invokeExpr instanceof ThisExpression) { ITypeBinding firstBinding = invokeExpr.resolveTypeBinding(); if (firstBinding != null) { for (IMethodBinding method : invokeType.getDeclaredMethods()) { if (method.equals(mi.resolveMethodBinding())) //may be wrong if the dotlen > 2 { if (Modifier.isStatic(method.getModifiers())) { methodInvType.setModifier("static"); } } } methodInvType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { methodInvType.setFirstElementType("unknown"); } } else if (invokeExpr instanceof ArrayAccess) { ITypeBinding firstBinding = invokeExpr.resolveTypeBinding(); if (firstBinding != null) { methodInvType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { methodInvType.setFirstElementType("unknown"); } } } } else if (sType.equals("QualifiedName")) { qualifiedNaType = new QualifiedNameType(); if (param instanceof QualifiedName) { QualifiedName qi = (QualifiedName) param; String simpleName = qi.getName().getIdentifier(); qualifiedNaType.setSimpleName(simpleName); qualifiedNaType.setModifier("null"); qualifiedNaType.setDeclareType("null"); Name qualifier = qi.getQualifier(); ITypeBinding qType = qualifier.resolveTypeBinding(); if (qType != null) { qualifiedNaType.setQualiferType(qType.getErasure().getQualifiedName()); ITypeBinding tpBinding = qType; do { for (IVariableBinding var : tpBinding.getDeclaredFields()) { if (var.getName().equals(simpleName)) { qualifiedNaType.setDeclareType(tpBinding.getErasure().getQualifiedName()); } } tpBinding = tpBinding.getSuperclass(); } while (tpBinding != null); // }while((tpBinding = tpBinding.getSuperclass())!= null); } else { qualifiedNaType.setQualiferType("unknown"); } /*for(IVariableBinding var:qType.getDeclaredFields()) { if (var.getName().equals(simpleName)) { if (Modifier.isStatic(var.getModifiers())) qualifiedNaType.setModifier("static"); } } */ while (qualifier instanceof QualifiedName) { QualifiedName tmpQualifiedName = (QualifiedName) qualifier; qualifier = tmpQualifiedName.getQualifier(); } ITypeBinding firstBinding = qualifier.resolveTypeBinding(); if (firstBinding != null) { String firstBindingStr = firstBinding.getErasure().getQualifiedName(); int pos = firstBindingStr.lastIndexOf("."); if (pos != -1) { firstBindingStr = firstBindingStr.substring(pos + 1, firstBindingStr.length()); SimpleName name = (SimpleName) qualifier; if (name.getIdentifier().equals(firstBindingStr)) { qualifiedNaType.setModifier("static"); } } qualifiedNaType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { qualifiedNaType.setFirstElementType("unknown"); } } else if (param instanceof FieldAccess) { FieldAccess fa = (FieldAccess) param; String identifier = fa.getName().getIdentifier(); qualifiedNaType.setSimpleName(identifier); qualifiedNaType.setModifier("null"); Expression fieldExpr = fa.getExpression(); if (fieldExpr == null) { qualifiedNaType.setQualiferType("null"); qualifiedNaType.setFirstElementType("null"); } else { ITypeBinding fieldType = fieldExpr.resolveTypeBinding(); if (fieldType != null) { qualifiedNaType.setQualiferType(fieldType.getErasure().getQualifiedName()); ITypeBinding tpBinding = fieldType; do { for (IVariableBinding var : tpBinding.getDeclaredFields()) { if (var.getName().equals(identifier)) { qualifiedNaType.setDeclareType(tpBinding.getErasure().getQualifiedName()); } } tpBinding = tpBinding.getSuperclass(); } while (tpBinding != null); } else { qualifiedNaType.setQualiferType("unknown"); } while (!((fieldExpr instanceof SimpleName) || (fieldExpr instanceof ThisExpression) || (fieldExpr instanceof ArrayAccess))) { if (fieldExpr instanceof MethodInvocation) { MethodInvocation temp = (MethodInvocation) fieldExpr; fieldExpr = temp.getExpression(); } else if (fieldExpr instanceof QualifiedName) { QualifiedName temp = (QualifiedName) fieldExpr; fieldExpr = temp.getQualifier(); } else if (fieldExpr instanceof FieldAccess) { FieldAccess temp = (FieldAccess) fieldExpr; fieldExpr = temp.getExpression(); } else { qualifiedNaType.setFirstElementType("unknown"); break; } } if (fieldExpr instanceof SimpleName) { ITypeBinding firstBinding = fieldExpr.resolveTypeBinding(); if (firstBinding != null) { String firstBindingStr = firstBinding.getErasure().getQualifiedName(); int pos = firstBindingStr.lastIndexOf("."); if (pos != -1) { firstBindingStr = firstBindingStr.substring(pos + 1, firstBindingStr.length()); SimpleName name = (SimpleName) fieldExpr; if (name.getIdentifier().equals(firstBindingStr)) { qualifiedNaType.setModifier("static"); } } qualifiedNaType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { qualifiedNaType.setFirstElementType("unknown"); } } else if (fieldExpr instanceof ThisExpression) { ITypeBinding firstBinding = fieldExpr.resolveTypeBinding(); if (firstBinding != null) { for (IVariableBinding var : firstBinding.getDeclaredFields()) { if (var.getName().equals(identifier)) { if (Modifier.isStatic(var.getModifiers())) { qualifiedNaType.setModifier("static"); } } } qualifiedNaType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { qualifiedNaType.setFirstElementType("unknown"); } } else if (fieldExpr instanceof ArrayAccess) { ITypeBinding firstBinding = fieldExpr.resolveTypeBinding(); if (firstBinding != null) { qualifiedNaType.setFirstElementType(firstBinding.getErasure().getQualifiedName()); } else { qualifiedNaType.setFirstElementType("unknown"); } } } } } }