private static IProgramElement lookupMember(IHierarchy model, UnresolvedType declaringType, Member member) { IProgramElement typeElement = model.findElementForType(declaringType.getPackageName(), declaringType.getClassName()); if (typeElement == null) { return null; } for (Iterator it = typeElement.getChildren().iterator(); it.hasNext();) { IProgramElement element = (IProgramElement) it.next(); if (member.getName().equals(element.getBytecodeName()) && member.getSignature().equals(element.getBytecodeSignature())) { return element; } } // if we can't find the member, we'll just put it in the class return typeElement; }
if (kind == ResolvedTypeMunger.Field) { // ITD FIELD String name = sig.getDeclaringType().getClassName() + "." + sig.getName(); if (name.indexOf("$") != -1) { name = name.substring(name.indexOf("$") + 1); } else if (kind == ResolvedTypeMunger.Method) { // ITD String name = sig.getDeclaringType().getClassName() + "." + sig.getName(); if (name.indexOf("$") != -1) { name = name.substring(name.indexOf("$") + 1); return pe; } else if (kind == ResolvedTypeMunger.Constructor) { String name = sig.getDeclaringType().getClassName() + "." + sig.getDeclaringType().getClassName(); if (name.indexOf("$") != -1) { name = name.substring(name.indexOf("$") + 1);
private void unpackAttributes(World world) { Attribute[] attrs = field.getAttributes(); if (attrs != null && attrs.length > 0) { ISourceContext sourceContext = getSourceContext(world); List<AjAttribute> as = Utility.readAjAttributes(getDeclaringType().getClassName(), attrs, sourceContext, world, (bcelObjectType != null ? bcelObjectType.getWeaverVersionAttribute() : WeaverVersionInfo.CURRENT), new BcelConstantPoolReader(field.getConstantPool())); as.addAll(AtAjAttributes.readAj5FieldAttributes(field, this, world.resolve(getDeclaringType()), sourceContext, world.getMessageHandler())); // FIXME this code has no effect!!!??? it is set to false immediately after the block // for (AjAttribute a : as) { // if (a instanceof AjAttribute.AjSynthetic) { // isAjSynthetic = true; // } else { // throw new BCException("weird field attribute " + a); // } // } } isAjSynthetic = false; for (int i = attrs.length - 1; i >= 0; i--) { if (attrs[i] instanceof Synthetic) { isSynthetic = true; } } // in 1.5, synthetic is a modifier, not an attribute if ((field.getModifiers() & AccSynthetic) != 0) { isSynthetic = true; } }
world.getLint().cantFindType.signal( new String[] { WeaverMessages.format(WeaverMessages.CANT_FIND_TYPE_DURING_AROUND_WEAVE_PREINIT, bcelTX.getClassName()) }, getSourceLocation(), new ISourceLocation[] { munger.getSourceLocation() });