List l = BcelAttributes.readAjAttributes(javaClass.getAttributes(), getResolvedTypeX().getSourceContext());
List l = BcelAttributes.readAjAttributes(javaClass.getAttributes(), getResolvedTypeX().getSourceContext(),getResolvedTypeX().getWorld().getMessageHandler());
	private void unpackAspectAttributes() {		List pointcuts = new ArrayList();		typeMungers = new ArrayList();		declares = new ArrayList();		List l = BcelAttributes.readAjAttributes(javaClass.getAttributes(), getResolvedTypeX().getSourceContext());		for (Iterator iter = l.iterator(); iter.hasNext();) {			AjAttribute a = (AjAttribute) iter.next();			//System.err.println("unpacking: " + this + " and " + a);			if (a instanceof AjAttribute.Aspect) {				perClause = ((AjAttribute.Aspect)a).reify(this.getResolvedTypeX());			} else if (a instanceof AjAttribute.PointcutDeclarationAttribute) {				pointcuts.add(((AjAttribute.PointcutDeclarationAttribute)a).reify());			} else if (a instanceof AjAttribute.WeaverState) {				weaverState = ((AjAttribute.WeaverState)a).reify();			} else if (a instanceof AjAttribute.TypeMunger) {				typeMungers.add(((AjAttribute.TypeMunger)a).reify(getResolvedTypeX().getWorld(), getResolvedTypeX()));			} else if (a instanceof AjAttribute.DeclareAttribute) {				declares.add(((AjAttribute.DeclareAttribute)a).getDeclare());			} else if (a instanceof AjAttribute.PrivilegedAttribute) {				privilegedAccess = ((AjAttribute.PrivilegedAttribute)a).getAccessedMembers();			} else if (a instanceof AjAttribute.SourceContextAttribute) {				if (getResolvedTypeX().getSourceContext() instanceof BcelSourceContext) {					((BcelSourceContext)getResolvedTypeX().getSourceContext()).addAttributeInfo((AjAttribute.SourceContextAttribute)a);				}			} else {				throw new BCException("bad attribute " + a);			}		}		this.pointcuts = (ResolvedPointcutDefinition[]) 			pointcuts.toArray(new ResolvedPointcutDefinition[pointcuts.size()]);//		this.typeMungers = (BcelTypeMunger[]) //			typeMungers.toArray(new BcelTypeMunger[typeMungers.size()]);//		this.declares = (Declare[])//			declares.toArray(new Declare[declares.size()]);		}