// then iterate on field interface hierarchy (not object)
boolean hasAtLeastOneMethod = false;
- ResolvedMember[] methods = fieldType.getMethodsWithoutIterator(true, false).toArray(new ResolvedMember[0]);
+ ResolvedMember[] methods = fieldType.getMethodsWithoutIterator(true, false, false).toArray(
+ new ResolvedMember[0]);
for (int i = 0; i < methods.length; i++) {
ResolvedMember method = methods[i];
if (method.isAbstract()) {
ResolvedType typeForDelegation = (ResolvedType) iterator.next();
// TODO check for overlapping interfaces. Eg. A implements I, I extends J - if they specify interfaces={I,J} we dont
// want to do any methods twice
- ResolvedMember[] methods = typeForDelegation.getMethodsWithoutIterator(true, false).toArray(new ResolvedMember[0]);
+ ResolvedMember[] methods = typeForDelegation.getMethodsWithoutIterator(true, false, false).toArray(
+ new ResolvedMember[0]);
for (int i = 0; i < methods.length; i++) {
ResolvedMember method = methods[i];
if (method.isAbstract()) {
ResolvedType callee = m_aspectGen.getWorld().resolve(UnresolvedType.forName(invoke.getClassName(cpg)));
// look in the whole method list and not just declared for super calls and alike
- List methods = callee.getMethodsWithoutIterator(false, true);
+ List methods = callee.getMethodsWithoutIterator(false, true, false);
for (Iterator iter = methods.iterator(); iter.hasNext();) {
ResolvedMember resolvedMember = (ResolvedMember) iter.next();
if (invoke.getName(cpg).equals(resolvedMember.getName())
cont = enforceDecpRule1_abstractMethodsImplemented(weaver, munger.getSourceLocation(), newParentTarget, newParent);
cont = enforceDecpRule2_cantExtendFinalClass(weaver, munger.getSourceLocation(), newParentTarget, newParent) && cont;
- List methods = newParent.getMethodsWithoutIterator(false, true);
+ List methods = newParent.getMethodsWithoutIterator(false, true, false);
for (Iterator iter = methods.iterator(); iter.hasNext();) {
ResolvedMember superMethod = (ResolvedMember) iter.next();
if (!superMethod.getName().equals("<init>")) {
// classes
// or
// interfaces
- List methods = newParent.getMethodsWithoutIterator(false, true);
+ List methods = newParent.getMethodsWithoutIterator(false, true, false);
for (Iterator i = methods.iterator(); i.hasNext();) {
ResolvedMember o = (ResolvedMember) i.next();
if (o.isAbstract() && !o.getName().startsWith("ajc$interField")) { // Ignore
// prefixed
// methods
ResolvedMember discoveredImpl = null;
- List newParentTargetMethods = newParentTarget.getType().getMethodsWithoutIterator(false, true);
+ List newParentTargetMethods = newParentTarget.getType().getMethodsWithoutIterator(false, true, false);
for (Iterator ii = newParentTargetMethods.iterator(); ii.hasNext() && discoveredImpl == null;) {
ResolvedMember gen2 = (ResolvedMember) ii.next();
if (gen2.getName().equals(o.getName()) && !gen2.isAbstract()) {