List of usage examples for org.objectweb.asm Opcodes ACC_SYNTHETIC
int ACC_SYNTHETIC
To view the source code for org.objectweb.asm Opcodes ACC_SYNTHETIC.
Click Source Link
From source file:org.spongepowered.mod.asm.util.ASMHelper.java
License:MIT License
/** * Generate a forwarding method of the form * "T name() { return this.forward(); }". * * @param clazz Class to generate new method on * @param name Name of method to generate * @param forwardname Name of method to call * @param rettype Return type of method/*from w w w .ja v a2s.com*/ */ public static void generateSelfForwardingMethod(ClassNode clazz, String name, String forwardname, Type rettype) { MethodNode method = new MethodNode(Opcodes.ASM5, Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, name, "()" + rettype.getDescriptor(), null, null); populateSelfForwardingMethod(method, forwardname, rettype, Type.getObjectType(clazz.name)); clazz.methods.add(method); }
From source file:org.spongepowered.mod.asm.util.ASMHelper.java
License:MIT License
/** * Generate a forwarding method of the form * "static T name(S object) { return object.forward(); }". * * @param clazz Class to generate new method on * @param name Name of method to generate * @param forwardname Name of method to call * @param rettype Return type of method//from ww w.j a va 2 s .c o m */ public static void generateStaticForwardingMethod(ClassNode clazz, String name, String forwardname, Type rettype, Type argtype) { MethodNode method = new MethodNode(Opcodes.ASM5, Opcodes.ACC_STATIC | Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, name, "()" + rettype.getDescriptor(), null, null); populateSelfForwardingMethod(method, forwardname, rettype, argtype); clazz.methods.add(method); }
From source file:org.spongepowered.mod.asm.util.ASMHelper.java
License:MIT License
/** * Generate a forwarding method of the form * "T name() { return Class.forward(this); }". * * @param clazz Class to generate new method on * @param name Name of method to generate * @param forwardname Name of method to call * @param rettype Return type of method/*from w w w . ja v a2 s .c o m*/ */ public static void generateForwardingToStaticMethod(ClassNode clazz, String name, String forwardname, Type rettype, Type fowardtype) { MethodNode method = new MethodNode(Opcodes.ASM5, Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, name, "()" + rettype.getDescriptor(), null, null); populateForwardingToStaticMethod(method, forwardname, rettype, Type.getObjectType(clazz.name), fowardtype); clazz.methods.add(method); }
From source file:org.spongepowered.mod.asm.util.ASMHelper.java
License:MIT License
/** * Generate a forwarding method of the form * "T name() { return Class.forward(this); }". * * @param clazz Class to generate new method on * @param name Name of method to generate * @param forwardname Name of method to call * @param rettype Return type of method//from ww w . ja v a 2 s . com * @param thistype Type to treat 'this' as for overload searching purposes */ public static void generateForwardingToStaticMethod(ClassNode clazz, String name, String forwardname, Type rettype, Type fowardtype, Type thistype) { MethodNode method = new MethodNode(Opcodes.ASM5, Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, name, "()" + rettype.getDescriptor(), null, null); populateForwardingToStaticMethod(method, forwardname, rettype, thistype, fowardtype); clazz.methods.add(method); }
From source file:org.spongepowered.mod.asm.util.ASMHelper.java
License:MIT License
/** * Generate a forwarding method of the form * "T name(S object) { return object.forward(); }". * * @param clazz Class to generate new method on * @param name Name of method to generate * @param forwardname Name of method to call * @param rettype Return type of method//ww w.j a v a 2 s. co m * @param argtype Type of object to call method on */ public static void generateForwardingMethod(ClassNode clazz, String name, String forwardname, Type rettype, Type argtype) { MethodNode method = new MethodNode(Opcodes.ASM5, Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC, name, "()" + rettype.getDescriptor(), null, null); populateForwardingMethod(method, forwardname, rettype, argtype, Type.getObjectType(clazz.name)); clazz.methods.add(method); }
From source file:org.springsource.loaded.test.infra.ClassPrinter.java
License:Apache License
private String toAccessForClass(int flags) { StringBuilder sb = new StringBuilder(); if ((flags & Opcodes.ACC_PUBLIC) != 0) { sb.append("public "); }/*from w w w . ja va 2s .co m*/ if ((flags & Opcodes.ACC_PRIVATE) != 0) { sb.append("private "); } if ((flags & Opcodes.ACC_PROTECTED) != 0) { sb.append("protected "); } if ((flags & Opcodes.ACC_STATIC) != 0) { sb.append("static "); } if ((flags & Opcodes.ACC_FINAL) != 0) { sb.append("final "); } if ((flags & Opcodes.ACC_SYNCHRONIZED) != 0) { sb.append("synchronized "); } if ((flags & Opcodes.ACC_BRIDGE) != 0) { sb.append("bridge "); } if ((flags & Opcodes.ACC_VARARGS) != 0) { sb.append("varargs "); } if ((flags & Opcodes.ACC_NATIVE) != 0) { sb.append("native "); } if ((flags & Opcodes.ACC_ABSTRACT) != 0) { sb.append("abstract "); } if ((flags & Opcodes.ACC_SYNTHETIC) != 0) { sb.append("synthetic "); } if ((flags & Opcodes.ACC_DEPRECATED) != 0) { sb.append("deprecated "); } if ((flags & Opcodes.ACC_INTERFACE) != 0) { sb.append("interface "); } return sb.toString().trim(); }
From source file:org.springsource.loaded.test.infra.ClassPrinter.java
License:Apache License
public static String toAccessForMember(int flags) { StringBuilder sb = new StringBuilder(); if ((flags & Opcodes.ACC_PUBLIC) != 0) { sb.append("public "); }/* w ww .jav a 2s. c o m*/ if ((flags & Opcodes.ACC_PRIVATE) != 0) { sb.append("private "); } if ((flags & Opcodes.ACC_STATIC) != 0) { sb.append("static "); } if ((flags & Opcodes.ACC_PROTECTED) != 0) { sb.append("protected "); } if ((flags & Opcodes.ACC_FINAL) != 0) { sb.append("final "); } if ((flags & Opcodes.ACC_SUPER) != 0) { sb.append("super "); } if ((flags & Opcodes.ACC_INTERFACE) != 0) { sb.append("interface "); } if ((flags & Opcodes.ACC_ABSTRACT) != 0) { sb.append("abstract "); } if ((flags & Opcodes.ACC_SYNTHETIC) != 0) { sb.append("synthetic "); } if ((flags & Opcodes.ACC_ANNOTATION) != 0) { sb.append("annotation "); } if ((flags & Opcodes.ACC_ENUM) != 0) { sb.append("enum "); } if ((flags & Opcodes.ACC_DEPRECATED) != 0) { sb.append("deprecated "); } return sb.toString().trim(); }
From source file:org.teavm.parsing.Parser.java
License:Apache License
public static void parseModifiers(int access, ElementHolder member) { if ((access & Opcodes.ACC_PRIVATE) != 0) { member.setLevel(AccessLevel.PRIVATE); } else if ((access & Opcodes.ACC_PROTECTED) != 0) { member.setLevel(AccessLevel.PROTECTED); } else if ((access & Opcodes.ACC_PUBLIC) != 0) { member.setLevel(AccessLevel.PUBLIC); }//from w ww . ja v a 2 s.c o m if ((access & Opcodes.ACC_ABSTRACT) != 0) { member.getModifiers().add(ElementModifier.ABSTRACT); } if ((access & Opcodes.ACC_ANNOTATION) != 0) { member.getModifiers().add(ElementModifier.ANNOTATION); } if ((access & Opcodes.ACC_BRIDGE) != 0) { member.getModifiers().add(ElementModifier.BRIDGE); } if ((access & Opcodes.ACC_DEPRECATED) != 0) { member.getModifiers().add(ElementModifier.DEPRECATED); } if ((access & Opcodes.ACC_ENUM) != 0) { member.getModifiers().add(ElementModifier.ENUM); } if ((access & Opcodes.ACC_FINAL) != 0) { member.getModifiers().add(ElementModifier.FINAL); } if ((access & Opcodes.ACC_INTERFACE) != 0) { member.getModifiers().add(ElementModifier.INTERFACE); } if ((access & Opcodes.ACC_NATIVE) != 0) { member.getModifiers().add(ElementModifier.NATIVE); } if ((access & Opcodes.ACC_STATIC) != 0) { member.getModifiers().add(ElementModifier.STATIC); } if ((access & Opcodes.ACC_STRICT) != 0) { member.getModifiers().add(ElementModifier.STRICT); } if ((access & Opcodes.ACC_SUPER) != 0) { member.getModifiers().add(ElementModifier.SUPER); } if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { member.getModifiers().add(ElementModifier.SYNCHRONIZED); } if ((access & Opcodes.ACC_SYNTHETIC) != 0) { member.getModifiers().add(ElementModifier.SYNTHETIC); } if ((access & Opcodes.ACC_TRANSIENT) != 0) { member.getModifiers().add(ElementModifier.TRANSIENT); } if ((access & Opcodes.ACC_VARARGS) != 0) { member.getModifiers().add(ElementModifier.VARARGS); } if ((access & Opcodes.ACC_VOLATILE) != 0) { member.getModifiers().add(ElementModifier.VOLATILE); } }
From source file:pt.minha.kernel.instrument.SyncToMonitorClassVisitor.java
License:Open Source License
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if (trans.isSynchronized()) { if (name.equals("<clinit>")) { hasClinit = true;//from w ww . j av a 2 s .c om return new ClinitVisitor(super.visitMethod(access, name, desc, signature, exceptions)); } if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { makeStub(access & ~Opcodes.ACC_SYNCHRONIZED, name, desc, signature, exceptions); return super.visitMethod( (access & ~(Opcodes.ACC_SYNCHRONIZED | Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED) | Opcodes.ACC_FINAL | Opcodes.ACC_SYNTHETIC | Opcodes.ACC_PRIVATE), "_" + name, desc, signature, exceptions); } } return super.visitMethod(access, name, desc, signature, exceptions); }
From source file:scouter.agent.asm.MethodASM.java
License:Apache License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); if (mv == null || mset.isA(name, desc) == false) { return mv; }//from w w w.j a v a 2 s .com if (AsmUtil.isSpecial(name)) { return mv; } // check exclude method set for (int i = 0; i < excludeTarget.size(); i++) { HookingSet excludeSet = excludeTarget.get(i); if (excludeSet.classMatch.include(className)) { if (excludeSet.isA(name, desc)) { return mv; } } } Configure conf = Configure.getInstance(); boolean isPublic = conf.hook_method_access_public_enabled; boolean isProtected = conf.hook_method_access_protected_enabled; boolean isPrivate = conf.hook_method_access_private_enabled; boolean isNone = conf.hook_method_access_none_enabled; //lambda method if (conf.hook_method_lambda_enable && (access & Opcodes.ACC_SYNTHETIC) == Opcodes.ACC_SYNTHETIC && name.indexOf("lambda$") == 0) { //if lambda method with hook_method_lambda_enabled then go on without method accessor check } else { // non-lambda method switch (access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED | Opcodes.ACC_PRIVATE)) { case Opcodes.ACC_PUBLIC: if (isPublic == false) return mv; break; case Opcodes.ACC_PROTECTED: if (isProtected == false) return mv; break; case Opcodes.ACC_PRIVATE: if (isPrivate == false) return mv; break; default: if (isNone == false) return mv; break; } } // check prefix, to ignore simple method such as getter,setter if (conf.isIgnoreMethodPrefix(name)) return mv; String fullname = AsmUtil.makeMethodFullName(className, name, desc); int fullname_hash = DataProxy.sendMethodName(fullname); return new MethodMV(access, desc, mv, fullname, fullname_hash); }