List of usage examples for org.objectweb.asm Opcodes ACC_PUBLIC
int ACC_PUBLIC
To view the source code for org.objectweb.asm Opcodes ACC_PUBLIC.
Click Source Link
From source file:com.devexperts.usages.ClassUsagesAnalyzer.java
License:Open Source License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { String methodMemberName = Member.methodMemberName(name, Type.getType(desc)); Member usedFrom = cache.resolveMember(className, methodMemberName); markTypeUse(Type.getType(desc), usedFrom, UseKind.UNKNOWN); // will be replaced by RETURN/ARGUMENT markSignatureUse(signature, usedFrom); if (exceptions != null) for (String ex : exceptions) makeTypeUse(toClassName(ex), usedFrom, UseKind.THROW); if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) != 0 && ((access & Opcodes.ACC_STATIC) == 0) && !name.equals(INIT_METHOD)) usages.getUsagesForClass(className).addInheritableMember(methodMemberName); return new MethodAnalyzer(usedFrom); }
From source file:com.devexperts.usages.PublicApiAnalyzer.java
License:Open Source License
private static boolean isPublicApi(int access) { return (access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) != 0; }
From source file:com.e2info.helloasm.HelloAsmApp.java
License:Open Source License
public static void main(String[] args) throws IOException { String name = "HelloAsm"; int flag = ClassWriter.COMPUTE_MAXS; ClassWriter cw = new ClassWriter(flag); cw.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC + Opcodes.ACC_SUPER, name, null, "java/lang/Object", null); cw.visitSource(name + ".java", null); {//from w ww .j a v a2s. c om MethodVisitor mv; mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, null); mv.visitCode(); mv.visitVarInsn(Opcodes.ALOAD, 0); mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); mv.visitInsn(Opcodes.RETURN); // we need this call to take effect ClassWriter.COMPUTE_MAXS flag. mv.visitMaxs(0, 0); mv.visitEnd(); } { MethodVisitor mv; mv = cw.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, "main", "([Ljava/lang/String;)V", null, null); mv.visitCode(); mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); mv.visitLdcInsn("hello ASM"); mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V"); mv.visitInsn(Opcodes.RETURN); // we need this call to take effect ClassWriter.COMPUTE_MAXS flag. mv.visitMaxs(0, 0); mv.visitEnd(); } cw.visitEnd(); // build binary byte[] bin = cw.toByteArray(); // save asm trace for human readable { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); new ClassReader(bin).accept(new TraceClassVisitor(pw), 0); File f = new File(name + ".txt"); FileUtils.writeStringToFile(f, sw.toString()); } // save as calss file { File f = new File(name + ".class"); FileUtils.writeByteArrayToFile(f, bin); } }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testExcludesSyntheticFields() { testExcludesFieldWithAccess(Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testIncludesPublicFields() { testIncludesFieldWithAccess(Opcodes.ACC_PUBLIC); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testNotConfusedByOtherFieldAccessFlagsIncluding() { testIncludesFieldWithAccess(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC | Opcodes.ACC_VOLATILE); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testIncludesPackageMethods() { testIncludesMethodWithAccess(Opcodes.ACC_PUBLIC); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testIncludesProtectedMethods() { testIncludesMethodWithAccess(Opcodes.ACC_PUBLIC); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testIncludesPublicMethods() { testIncludesMethodWithAccess(Opcodes.ACC_PUBLIC); }
From source file:com.facebook.buck.jvm.java.abi.AbiFilteringClassVisitorTest.java
License:Apache License
@Test public void testExcludesSyntheticMethods() { testExcludesMethodWithAccess(Opcodes.ACC_PUBLIC | Opcodes.ACC_SYNTHETIC); }