/** * Returns the original method (as opposed to parameterized instances) */ public MethodBinding original() { return this.originalMethod.original(); }
/** * Strips one level of parameterization, so if both class & method are parameterized, * leave the class parameters in place. */ public MethodBinding shallowOriginal() { return original(); }
/** * Returns the original method (as opposed to parameterized instances) */ public MethodBinding original() { return this.originalMethod.original(); } }
/** * Returns the original method (as opposed to parameterized instances) */ public MethodBinding original() { return this.originalMethod.original(); }
@Override public MethodBinding original() { return this.closestMatch == null ? this : this.closestMatch.original(); } @Override
/** * Strips one level of parameterization, so if both class & method are parameterized, * leave the class parameters in place. */ public MethodBinding shallowOriginal() { return original(); }
/** * @see org.eclipse.jdt.core.dom.IMethodBinding#getMethodDeclaration() */ public IMethodBinding getMethodDeclaration() { return this.resolver.getMethodBinding(this.binding.original()); }
private MethodBinding[] getAllOriginalInheritedMethods(ReferenceBinding binding) { ArrayList<MethodBinding> collector = new ArrayList<MethodBinding>(); getAllInheritedMethods0(binding, collector); for (int i = 0, len = collector.size(); i < len; i++) { collector.set(i, collector.get(i).original()); } return collector.toArray(new MethodBinding[collector.size()]); }
/** * @see org.eclipse.jdt.core.dom.IMethodBinding#getMethodDeclaration() */ public IMethodBinding getMethodDeclaration() { return this.resolver.getMethodBinding(this.binding.original()); }
private MethodBinding[] getAllOriginalInheritedMethods(ReferenceBinding binding) { ArrayList collector = new ArrayList(); getAllInheritedMethods0(binding, collector); for (int i = 0, len = collector.size(); i < len; i++) { collector.set(i, ((MethodBinding)collector.get(i)).original()); } return (MethodBinding[]) collector.toArray(new MethodBinding[collector.size()]); }
static boolean areMethodsCompatible(MethodBinding one, MethodBinding two, LookupEnvironment environment) { // use the original methods to test compatibility, but do not check visibility, etc one = one.original(); two = one.findOriginalInheritedMethod(two); if (two == null) return false; // method's declaringClass does not inherit from inheritedMethod's return isParameterSubsignature(one, two, environment); } boolean areReturnTypesCompatible(MethodBinding one, MethodBinding two) {
protected int getSourcePosition(MethodBinding mb) { MethodBinding methodBinding = SpiWithJdtUtils.nvl(mb.original(), mb); if (methodBinding == null) { return UNKNOWN_SOURCE_POS; } AbstractMethodDeclaration decl = methodBinding.sourceMethod(); if (decl == null) { return UNKNOWN_SOURCE_POS; } return decl.declarationSourceStart; }
public boolean doesMethodOverride(MethodBinding method, MethodBinding inheritedMethod) { if (!couldMethodOverride(method, inheritedMethod)) return false; inheritedMethod = inheritedMethod.original(); TypeBinding match = method.declaringClass.findSuperTypeOriginatingFrom(inheritedMethod.declaringClass); if (!(match instanceof ReferenceBinding)) return false; // method's declaringClass does not inherit from inheritedMethod's return isParameterSubsignature(method, inheritedMethod); }
public boolean doesMethodOverride(MethodBinding method, MethodBinding inheritedMethod) { if (!couldMethodOverride(method, inheritedMethod)) return false; inheritedMethod = inheritedMethod.original(); TypeBinding match = method.declaringClass.findSuperTypeOriginatingFrom(inheritedMethod.declaringClass); if (!(match instanceof ReferenceBinding)) return false; // method's declaringClass does not inherit from inheritedMethod's return isParameterSubsignature(method, inheritedMethod); }
boolean isInterfaceMethodImplemented(MethodBinding inheritedMethod, MethodBinding existingMethod, ReferenceBinding superType) { if (inheritedMethod.original() != inheritedMethod && existingMethod.declaringClass.isInterface()) return false; // must hold onto ParameterizedMethod to see if a bridge method is necessary inheritedMethod = computeSubstituteMethod(inheritedMethod, existingMethod); return inheritedMethod != null && inheritedMethod.returnType == existingMethod.returnType // keep around to produce bridge methods && doesMethodOverride(existingMethod, inheritedMethod); } public boolean isMethodSubsignature(MethodBinding method, MethodBinding inheritedMethod) {
public void setDefaultValue(Object defaultValue) { MethodBinding originalMethod = original(); originalMethod.tagBits |= TagBits.DefaultValueResolved; AnnotationHolder holder = this.declaringClass.retrieveAnnotationHolder(this, false); if (holder == null) setAnnotations(null, null, defaultValue, null); else setAnnotations(holder.getAnnotations(), holder.getParameterAnnotations(), defaultValue, null); } public void setParameterAnnotations(AnnotationBinding[][] parameterAnnotations) {
public void setDefaultValue(Object defaultValue) { MethodBinding originalMethod = original(); originalMethod.tagBits |= TagBits.DefaultValueResolved; AnnotationHolder holder = this.declaringClass.retrieveAnnotationHolder(this, false); if (holder == null) setAnnotations(null, null, defaultValue, null); else setAnnotations(holder.getAnnotations(), holder.getParameterAnnotations(), defaultValue, null); } public void setParameterAnnotations(AnnotationBinding[][] parameterAnnotations) {
public void setDefaultValue(Object defaultValue) { MethodBinding originalMethod = original(); originalMethod.tagBits |= TagBits.DefaultValueResolved; AnnotationHolder holder = this.declaringClass.retrieveAnnotationHolder(this, false); if (holder == null) setAnnotations(null, null, defaultValue, null); else setAnnotations(holder.getAnnotations(), holder.getParameterAnnotations(), defaultValue, null); } public void setParameterAnnotations(AnnotationBinding[][] parameterAnnotations) {
public void setDefaultValue(Object defaultValue) { MethodBinding originalMethod = original(); originalMethod.tagBits |= TagBits.DefaultValueResolved; AnnotationHolder holder = this.declaringClass.retrieveAnnotationHolder(this, false); if (holder == null) setAnnotations(null, null, defaultValue, null); else setAnnotations(holder.getAnnotations(), holder.getParameterAnnotations(), defaultValue, null); } public void setParameterAnnotations(AnnotationBinding[][] parameterAnnotations) {