public static String getExtractableName(Member shadowSignature) { String name = shadowSignature.getName(); MemberKind kind = shadowSignature.getKind(); if (kind == Member.CONSTRUCTOR) { return "init$"; } else if (kind == Member.STATIC_INITIALIZATION) { return "clinit$"; } else { return name; } }
public static String getSignatureMakerName(Member m) { MemberKind kind = m.getKind(); if (kind == Member.METHOD) { return "makeMethodSig"; } else if (kind == Member.CONSTRUCTOR) { return "makeConstructorSig"; } else if (kind == Member.FIELD) { return "makeFieldSig"; } else if (kind == Member.HANDLER) { return "makeCatchClauseSig"; } else if (kind == Member.STATIC_INITIALIZATION) { return "makeInitializerSig"; } else if (kind == Member.ADVICE) { return "makeAdviceSig"; } else if (kind == Member.MONITORENTER) { return "makeLockSig"; } else if (kind == Member.MONITOREXIT) { return "makeUnlockSig"; } else { throw new BCException("Do not know the signature maker name for MemberKind " + kind); } }
public String getFactoryMethod(Field field, BcelShadow shadow) { StringBuilder b = new StringBuilder(); b.append("make"); MemberKind kind = shadow.getSignature().getKind(); if (kind.equals(Member.METHOD)) { b.append("Method");
/** * @return true if this member equals the one supplied in every respect other than the declaring type */ public final boolean equalsApartFromDeclaringType(Object other) { if (!(other instanceof Member)) { return false; } Member o = (Member) other; return (getKind() == o.getKind() && getName().equals(o.getName()) && getSignature().equals(o.getSignature())); }
public static String getSignatureType(Member m) { MemberKind kind = m.getKind(); if (m.getName().equals("<clinit>") && kind != Member.STATIC_INITIALIZATION) throw new BCException(); // if (m.getName().equals("<clinit>")) return "org.aspectj.lang.reflect.InitializerSignature"; if (kind == Member.METHOD) { return "org.aspectj.lang.reflect.MethodSignature"; } else if (kind == Member.CONSTRUCTOR) { return "org.aspectj.lang.reflect.ConstructorSignature"; } else if (kind == Member.FIELD) { return "org.aspectj.lang.reflect.FieldSignature"; } else if (kind == Member.HANDLER) { return "org.aspectj.lang.reflect.CatchClauseSignature"; } else if (kind == Member.STATIC_INITIALIZATION) { return "org.aspectj.lang.reflect.InitializerSignature"; } else if (kind == Member.ADVICE) { return "org.aspectj.lang.reflect.AdviceSignature"; } else if (kind == Member.MONITORENTER) { return "org.aspectj.lang.reflect.LockSignature"; } else if (kind == Member.MONITOREXIT) { return "org.aspectj.lang.reflect.UnlockSignature"; } else { throw new BCException("Do not know the signature type for MemberKind " + kind); } }
@Override public final boolean equals(Object other) { if (!(other instanceof Member)) { return false; } Member o = (Member) other; return (getKind() == o.getKind() && getName().equals(o.getName()) && getSignature().equals(o.getSignature()) && getDeclaringType() .equals(o.getDeclaringType())); }
/** * as lookupMemberNoSupers, but does not include ITDs * * @param member * @return */ public ResolvedMember lookupDirectlyDeclaredMemberNoSupers(Member member) { ResolvedMember ret; if (member.getKind() == Member.FIELD) { ret = lookupMember(member, getDeclaredFields()); } else { // assert member.getKind() == Member.METHOD || member.getKind() == // Member.CONSTRUCTOR ret = lookupMember(member, getDeclaredMethods()); } return ret; }
public boolean isCompatibleWith(Member am) { if (kind != METHOD || am.getKind() != METHOD) { return true; } if (!name.equals(am.getName())) { return true; } if (!equalTypes(getParameterTypes(), am.getParameterTypes())) { return true; } return getReturnType().equals(am.getReturnType()); }
if (member.getKind() == Member.CONSTRUCTOR) { ResolvedMemberImpl ret = new ResolvedMemberImpl(Member.CONSTRUCTOR, this, Modifier.PUBLIC, UnresolvedType.VOID, "<init>", world.resolve(member.getParameterTypes()));
if (joinPointSignature.getKind() == Member.CONSTRUCTOR) { return JoinPointSignature.EMPTY_ARRAY;
/** * Member resolution is achieved by resolving the declaring type and then looking up the member in the resolved declaring type. */ public ResolvedMember resolve(Member member) { ResolvedType declaring = member.getDeclaringType().resolve(this); if (declaring.isRawType()) { declaring = declaring.getGenericType(); } ResolvedMember ret; if (member.getKind() == Member.FIELD) { ret = declaring.lookupField(member); } else { ret = declaring.lookupMethod(member); } if (ret != null) { return ret; } return declaring.lookupSyntheticMember(member); }
public static String getSignatureString(Member m, World world) { MemberKind kind = m.getKind(); if (kind == Member.METHOD) { return getMethodSignatureString(m, world); } else if (kind == Member.CONSTRUCTOR) { return getConstructorSignatureString(m, world); } else if (kind == Member.FIELD) { return getFieldSignatureString(m, world); } else if (kind == Member.HANDLER) { return getHandlerSignatureString(m, world); } else if (kind == Member.STATIC_INITIALIZATION) { return getStaticInitializationSignatureString(m, world); } else if (kind == Member.ADVICE) { return getAdviceSignatureString(m, world); } else if (kind == Member.MONITORENTER || kind == Member.MONITOREXIT) { return getMonitorSignatureString(m, world); } else { throw new BCException("Do not know the signature string for MemberKind " + kind); } }
ResolvedMember ajcMethod = (getSignature().getKind() == ResolvedMember.CONSTRUCTOR ? AjcMemberMaker .postIntroducedConstructor(typeMunger.getAspectType(), fakerm.getDeclaringType(), fakerm.getParameterTypes()) : AjcMemberMaker.interMethodDispatcher(fakerm,
return false; if (kind != joinPointSignature.getKind()) { return false;
if (sig.getKind().equals(Member.METHOD)) { pushInt(list, sig.getModifiers(w)); pushString(list, sig.getName()); list.append(fact.createInvoke(factoryType.getClassName(), factoryMethod, field.getType(), PARAMSIGNATURE_MAKESJP_METHOD, Constants.INVOKEVIRTUAL)); } else if (sig.getKind().equals(Member.CONSTRUCTOR)) { if (w.isJoinpointArrayConstructionEnabled() && sig.getDeclaringType().isArray()) { pushInt(list, Modifier.PUBLIC); list.append(fact.createInvoke(factoryType.getClassName(), factoryMethod, field.getType(), PARAMSIGNATURE_MAKESJP_CONSTRUCTOR, Constants.INVOKEVIRTUAL)); } else if (sig.getKind().equals(Member.HANDLER)) { pushClass(list, sig.getDeclaringType()); pushClass(list, sig.getParameterTypes()[0]); list.append(fact.createInvoke(factoryType.getClassName(), factoryMethod, field.getType(), PARAMSIGNATURE_MAKESJP_CATCHCLAUSE, Constants.INVOKEVIRTUAL)); } else if (sig.getKind().equals(Member.FIELD)) { pushInt(list, sig.getModifiers(w)); pushString(list, sig.getName()); list.append(fact.createInvoke(factoryType.getClassName(), factoryMethod, field.getType(), PARAMSIGNATURE_MAKESJP_FIELD, Constants.INVOKEVIRTUAL)); } else if (sig.getKind().equals(Member.STATIC_INITIALIZATION)) { pushInt(list, sig.getModifiers(w)); pushClass(list, sig.getDeclaringType()); list.append(fact.createInvoke(factoryType.getClassName(), factoryMethod, field.getType(),
|| kind == Shadow.AdviceExecution || ((kind == Shadow.FieldGet || kind == Shadow.FieldSet) && member.getKind() == Member.METHOD)) { || ((kind == Shadow.FieldGet || kind == Shadow.FieldSet) && member.getKind() == Member.METHOD) || ((kind == Shadow.ConstructorCall || kind == Shadow.ConstructorExecution) && member.getKind() == Member.METHOD)) {