private static String getStaticInitializationSignatureString(Member m, World world) { StringBuffer buf = new StringBuffer(); buf.append(makeString(m.getModifiers(world))); buf.append('-'); // buf.append(getName()); buf.append('-'); buf.append(makeString(m.getDeclaringType())); buf.append('-'); return buf.toString(); }
private boolean shouldWalkUpHierarchy() { if (signaturesOfMember.getKind() == Member.CONSTRUCTOR) { return false; } if (signaturesOfMember.getKind() == Member.FIELD) { return false; } if (Modifier.isStatic(signaturesOfMember.getModifiers())) { return false; } return true; }
private static boolean shouldWalkUpHierarchyFor(Member aMember) { if (aMember.getKind() == Member.CONSTRUCTOR) { return false; } if (aMember.getKind() == Member.FIELD) { return false; } if (Modifier.isStatic(aMember.getModifiers())) { return false; } return true; }
protected static String getFieldSignatureString(Member m, World world) { StringBuffer buf = new StringBuffer(); buf.append(makeString(m.getModifiers(world))); buf.append('-'); buf.append(m.getName()); buf.append('-'); buf.append(makeString(m.getDeclaringType())); buf.append('-'); buf.append(makeString(m.getReturnType())); buf.append('-'); return buf.toString(); }
public static Instruction createSuperInvoke(InstructionFactory fact, BcelWorld world, Member signature) { short kind; if (Modifier.isInterface(signature.getModifiers())) { throw new RuntimeException("bad"); } else if (Modifier.isPrivate(signature.getModifiers()) || signature.getName().equals("<init>")) { throw new RuntimeException("unimplemented, possibly bad"); } else if (Modifier.isStatic(signature.getModifiers())) { throw new RuntimeException("bad"); } else { kind = Constants.INVOKESPECIAL; } return fact.createInvoke(signature.getDeclaringType().getName(), signature.getName(), BcelWorld.makeBcelType(signature.getReturnType()), BcelWorld.makeBcelTypes(signature.getParameterTypes()), kind); }
protected static String getConstructorSignatureString(Member m, World world) { StringBuffer buf = new StringBuffer(); buf.append(makeString(m.getModifiers(world))); buf.append('-'); buf.append('-'); buf.append(makeString(m.getDeclaringType())); buf.append('-'); buf.append(makeString(m.getParameterTypes())); buf.append('-'); buf.append(makeString(m.getParameterNames(world))); buf.append('-'); buf.append(makeString(m.getExceptions(world))); buf.append('-'); return buf.toString(); }
protected static String getAdviceSignatureString(Member m, World world) { StringBuffer buf = new StringBuffer(); buf.append(makeString(m.getModifiers(world))); buf.append('-'); buf.append(m.getName()); buf.append('-'); buf.append(makeString(m.getDeclaringType())); buf.append('-'); buf.append(makeString(m.getParameterTypes())); buf.append('-'); buf.append(makeString(m.getParameterNames(world))); buf.append('-'); buf.append(makeString(m.getExceptions(world))); buf.append('-'); buf.append(makeString(m.getReturnType())); buf.append('-'); return buf.toString(); }
protected static String getMethodSignatureString(Member m, World world) { StringBuffer buf = new StringBuffer(); buf.append(makeString(m.getModifiers(world))); buf.append('-'); buf.append(m.getName()); buf.append('-'); buf.append(makeString(m.getDeclaringType())); buf.append('-'); buf.append(makeString(m.getParameterTypes())); buf.append('-'); buf.append(makeString(m.getParameterNames(world))); buf.append('-'); buf.append(makeString(m.getExceptions(world))); buf.append('-'); buf.append(makeString(m.getReturnType())); buf.append('-'); return buf.toString(); }
private boolean hasField(ResolvedType type) { // TODO what about ITDs World world = type.getWorld(); for (Iterator iter = type.getFields(); iter.hasNext();) { Member field = (Member) iter.next(); if (field.getName().startsWith(declareAtPrefix)) { continue; } if (signaturePattern.matches(field, type.getWorld(), false)) { if (field.getDeclaringType().resolve(world) != type) { if (Modifier.isPrivate(field.getModifiers())) { continue; } } return true; } } return false; }
public static Instruction createSet(InstructionFactory fact, Member signature) { short kind; if (Modifier.isStatic(signature.getModifiers())) { kind = Constants.PUTSTATIC; } else { kind = Constants.PUTFIELD; } return fact.createFieldAccess(signature.getDeclaringType().getName(), signature.getName(), BcelWorld.makeBcelType(signature.getReturnType()), kind); }
/** * could target(*) pcd ever match */ public final boolean hasTarget() { if (getKind().neverHasTarget()) { return false; } else if (getKind().isTargetSameAsThis()) { return hasThis(); } else { return !Modifier.isStatic(getSignature().getModifiers()); } }
public static Instruction createGet(InstructionFactory fact, Member signature) { short kind; if (Modifier.isStatic(signature.getModifiers())) { kind = Constants.GETSTATIC; } else { kind = Constants.GETFIELD; } return fact.createFieldAccess(signature.getDeclaringType().getName(), signature.getName(), BcelWorld.makeBcelType(signature.getReturnType()), kind); }
/** * Is arg0 occupied with the value of this */ public boolean arg0HoldsThis() { if (getKind().isEnclosingKind()) { return !Modifier.isStatic(getSignature().getModifiers()); } else if (enclosingShadow == null) { // XXX this is mostly right // this doesn't do the right thing for calls in the pre part of introduced constructors. return !enclosingMethod.isStatic(); } else { return ((BcelShadow) enclosingShadow).arg0HoldsThis(); } }
/** * could this(*) pcd ever match */ public final boolean hasThis() { if (getKind().neverHasThis()) { return false; } else if (getKind().isEnclosingKind()) { return !Modifier.isStatic(getSignature().getModifiers()); } else if (enclosingShadow == null) { return false; } else { return enclosingShadow.hasThis(); } }
if (shortSyntax) { UnresolvedType[] args = null; if (Modifier.isStatic(field.getModifiers())) { args = ResolvedType.NONE; } else { String getterName = NameMangler.privilegedAccessMethodForFieldGet(field.getName(), fieldDeclaringType, aspectType); String sig; if (Modifier.isStatic(field.getModifiers())) { sig = "()" + field.getReturnType().getSignature(); } else {
public static Instruction createInvoke(InstructionFactory fact, BcelWorld world, Member signature) { short kind; int signatureModifiers = signature.getModifiers(); if (Modifier.isInterface(signatureModifiers)) { kind = Constants.INVOKEINTERFACE; } else if (Modifier.isStatic(signatureModifiers)) { kind = Constants.INVOKESTATIC; } else if (Modifier.isPrivate(signatureModifiers) || signature.getName().equals("<init>")) { kind = Constants.INVOKESPECIAL; } else { kind = Constants.INVOKEVIRTUAL; } UnresolvedType targetType = signature.getDeclaringType(); if (targetType.isParameterizedType()) { targetType = targetType.resolve(world).getGenericType(); } return fact.createInvoke(targetType.getName(), signature.getName(), BcelWorld.makeBcelType(signature.getReturnType()), BcelWorld.makeBcelTypes(signature.getParameterTypes()), kind); }
if (shortSyntax) { UnresolvedType[] args = null; if (Modifier.isStatic(field.getModifiers())) { args = new UnresolvedType[] { field.getType() }; } else { String setterName = NameMangler.privilegedAccessMethodForFieldSet(field.getName(), fieldDeclaringType, aspectType); String sig; if (Modifier.isStatic(field.getModifiers())) { sig = "(" + field.getReturnType().getSignature() + ")V"; } else {
public static ResolvedMember inlineAccessMethodForFieldSet(UnresolvedType aspectType, Member field) { String sig; if (Modifier.isStatic(field.getModifiers())) { sig = "(" + field.getReturnType().getSignature() + ")V"; } else { sig = "(" + field.getDeclaringType().getSignature() + field.getReturnType().getSignature() + ")V"; } return new ResolvedMemberImpl(Member.METHOD, aspectType, PUBLIC_STATIC, // Modifier.PUBLIC | (field.isStatic() ? // Modifier.STATIC : 0), NameMangler.inlineAccessMethodForFieldSet(field.getName(), field.getDeclaringType(), aspectType), sig); }
public static ResolvedMember inlineAccessMethodForFieldGet(UnresolvedType aspectType, Member field) { String sig; if (Modifier.isStatic(field.getModifiers())) { sig = "()" + field.getReturnType().getSignature(); } else { sig = "(" + field.getDeclaringType().getSignature() + ")" + field.getReturnType().getSignature(); } return new ResolvedMemberImpl(Member.METHOD, aspectType, PUBLIC_STATIC, // Modifier.PUBLIC | (field.isStatic() ? // Modifier.STATIC : 0), NameMangler.inlineAccessMethodForFieldGet(field.getName(), field.getDeclaringType(), aspectType), sig); }
private static IProgramElement createAdviceChild(AsmManager model, Advice advice) { IProgramElement adviceNode = new ProgramElement(model, advice.getKind().getName(), IProgramElement.Kind.ADVICE, advice.getBinarySourceLocation(advice.getSourceLocation()), advice.getSignature().getModifiers(), null, Collections.<IProgramElement>emptyList()); adviceNode.setDetails(AsmRelationshipUtils.genPointcutDetails(advice.getPointcut())); adviceNode.setBytecodeName(advice.getSignature().getName()); return adviceNode; }