List of usage examples for org.objectweb.asm Opcodes ACC_VOLATILE
int ACC_VOLATILE
To view the source code for org.objectweb.asm Opcodes ACC_VOLATILE.
Click Source Link
From source file:com.googlecode.dex2jar.ir.ToStringUtil.java
License:Apache License
public static String getAccDes(int acc) { StringBuilder sb = new StringBuilder(); if ((acc & Opcodes.ACC_PUBLIC) != 0) { sb.append("public "); }/* w w w. j av a2 s . c om*/ if ((acc & Opcodes.ACC_PROTECTED) != 0) { sb.append("protected "); } if ((acc & Opcodes.ACC_PRIVATE) != 0) { sb.append("private "); } if ((acc & Opcodes.ACC_STATIC) != 0) { sb.append("static "); } if ((acc & Opcodes.ACC_ABSTRACT) != 0 && (acc & Opcodes.ACC_INTERFACE) == 0) { sb.append("abstract "); } if ((acc & Opcodes.ACC_ANNOTATION) != 0) { sb.append("annotation "); } if ((acc & Opcodes.ACC_BRIDGE) != 0) { sb.append("bridge "); } if ((acc & Opcodes.ACC_DEPRECATED) != 0) { sb.append("deprecated "); } if ((acc & Opcodes.ACC_ENUM) != 0) { sb.append("enum "); } if ((acc & Opcodes.ACC_FINAL) != 0) { sb.append("final "); } if ((acc & Opcodes.ACC_INTERFACE) != 0) { sb.append("interace "); } if ((acc & Opcodes.ACC_NATIVE) != 0) { sb.append("native "); } if ((acc & Opcodes.ACC_STRICT) != 0) { sb.append("strict "); } if ((acc & Opcodes.ACC_SYNCHRONIZED) != 0) { sb.append("synchronized "); } if ((acc & Opcodes.ACC_TRANSIENT) != 0) { sb.append("transient "); } if ((acc & Opcodes.ACC_VARARGS) != 0) { sb.append("varargs "); } if ((acc & Opcodes.ACC_VOLATILE) != 0) { sb.append("volatile "); } return sb.toString(); }
From source file:com.googlecode.dex2jar.tools.JarAccessCmd.java
License:Apache License
static int str2acc(String s) { if (s == null) { return 0; }//from w ww . j a va2s.c o m int result = 0; s = s.toLowerCase(); if (s.contains("public")) { result |= Opcodes.ACC_PUBLIC; } if (s.contains("private")) { result |= Opcodes.ACC_PRIVATE; } if (s.contains("protected")) { result |= Opcodes.ACC_PROTECTED; } if (s.contains("final")) { result |= Opcodes.ACC_FINAL; } if (s.contains("static")) { result |= Opcodes.ACC_STATIC; } if (s.contains("super")) { result |= Opcodes.ACC_SUPER; } if (s.contains("synchronized")) { result |= Opcodes.ACC_SYNCHRONIZED; } if (s.contains("volatile")) { result |= Opcodes.ACC_VOLATILE; } if (s.contains("bridge")) { result |= Opcodes.ACC_BRIDGE; } if (s.contains("transient")) { result |= Opcodes.ACC_TRANSIENT; } if (s.contains("varargs")) { result |= Opcodes.ACC_VARARGS; } if (s.contains("native")) { result |= Opcodes.ACC_NATIVE; } if (s.contains("strict")) { result |= Opcodes.ACC_STRICT; } if (s.contains("interface")) { result |= Opcodes.ACC_INTERFACE; } if (s.contains("abstract")) { result |= Opcodes.ACC_ABSTRACT; } if (s.contains("synthetic")) { result |= Opcodes.ACC_SYNTHETIC; } if (s.contains("annotation")) { result |= Opcodes.ACC_ANNOTATION; } if (s.contains("enum")) { result |= Opcodes.ACC_ENUM; } if (s.contains("deprecated")) { result |= Opcodes.ACC_DEPRECATED; } return result; }
From source file:com.masetta.spann.metadata.reader.asm3_2.FieldModifierImpl.java
License:Apache License
/** * <p>isVolatile</p> * * @return a boolean. */ public boolean isVolatile() { return (modifier & Opcodes.ACC_VOLATILE) != 0; }
From source file:com.poolik.classfinder.info.ClassInfo.java
License:BSD License
/** * Convert an ASM access mask to a reflection Modifier mask. * * @param asmAccessMask the ASM access mask * @return the Modifier mask/*ww w .j ava2s . c o m*/ */ private int convertAccessMaskToModifierMask(int asmAccessMask) { int modifier = 0; // Convert the ASM access info into Reflection API modifiers. if ((asmAccessMask & Opcodes.ACC_FINAL) != 0) modifier |= Modifier.FINAL; if ((asmAccessMask & Opcodes.ACC_NATIVE) != 0) modifier |= Modifier.NATIVE; if ((asmAccessMask & Opcodes.ACC_INTERFACE) != 0) modifier |= Modifier.INTERFACE; if ((asmAccessMask & Opcodes.ACC_ABSTRACT) != 0) modifier |= Modifier.ABSTRACT; if ((asmAccessMask & Opcodes.ACC_PRIVATE) != 0) modifier |= Modifier.PRIVATE; if ((asmAccessMask & Opcodes.ACC_PROTECTED) != 0) modifier |= Modifier.PROTECTED; if ((asmAccessMask & Opcodes.ACC_PUBLIC) != 0) modifier |= Modifier.PUBLIC; if ((asmAccessMask & Opcodes.ACC_STATIC) != 0) modifier |= Modifier.STATIC; if ((asmAccessMask & Opcodes.ACC_STRICT) != 0) modifier |= Modifier.STRICT; if ((asmAccessMask & Opcodes.ACC_SYNCHRONIZED) != 0) modifier |= Modifier.SYNCHRONIZED; if ((asmAccessMask & Opcodes.ACC_TRANSIENT) != 0) modifier |= Modifier.TRANSIENT; if ((asmAccessMask & Opcodes.ACC_VOLATILE) != 0) modifier |= Modifier.VOLATILE; return modifier; }
From source file:com.yahoo.yqlplus.engine.internal.generate.ProgramGenerator.java
public ObjectBuilder.FieldBuilder registerValue(OperatorValue output, TypeWidget type) { register(output, type);// www.j a v a2 s . c o m ObjectBuilder.FieldBuilder outputField = program.field(output.getName(), type); outputField.addModifiers(Opcodes.ACC_VOLATILE); return outputField; }
From source file:dodola.anole.lib.IncrementalSupportVisitor.java
License:Apache License
/** * Ensures that the class contains a $change field used for referencing the * IncrementalChange dispatcher.// www .j a va2s . c o m * <p/> * Also updates package_private visiblity to public so we can call into this class from * outside the package. */ @Override public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { visitedClassName = name; visitedSuperName = superName; super.visitField(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC | Opcodes.ACC_VOLATILE | Opcodes.ACC_SYNTHETIC, "$change", getRuntimeTypeName(CHANGE_TYPE), null, null); access = transformClassAccessForInstantRun(access); super.visit(version, access, name, signature, superName, interfaces); }
From source file:edu.umd.cs.findbugs.classfile.engine.ClassParserUsingASM.java
License:Open Source License
@Override public void parse(final ClassNameAndSuperclassInfo.Builder cBuilder) throws InvalidClassFileFormatException { cBuilder.setCodeBaseEntry(codeBaseEntry); final TreeSet<ClassDescriptor> calledClassSet = new TreeSet<ClassDescriptor>(); classReader.accept(new ClassVisitor(FindBugsASM.ASM_VERSION) { // boolean isInnerClass = false; @Override// w w w .ja va 2s . c om public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { ClassParserUsingASM.this.slashedClassName = name; cBuilder.setClassfileVersion(version >>> 16, version & 0xffff); cBuilder.setAccessFlags(access); cBuilder.setClassDescriptor(DescriptorFactory.createClassDescriptor(name)); cBuilder.setInterfaceDescriptorList(DescriptorFactory.createClassDescriptor(interfaces)); if (superName != null) { cBuilder.setSuperclassDescriptor(DescriptorFactory.createClassDescriptor(superName)); } if (cBuilder instanceof ClassInfo.Builder) { ((ClassInfo.Builder) cBuilder).setSourceSignature(signature); } } @Override public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean isVisible) { if (cBuilder instanceof ClassInfo.Builder) { AnnotationValue value = new AnnotationValue(desc); ((ClassInfo.Builder) cBuilder).addAnnotation(desc, value); return value.getAnnotationVisitor(); } return null; } @Override public void visitAttribute(Attribute arg0) { // } @Override public void visitEnd() { // } @Override public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { // if (name.equals("this$0")) // isInnerClass = true; if (desc == null) { throw new NullPointerException("Description cannot be null"); } if (cBuilder instanceof ClassInfo.Builder) { final ClassInfo.Builder cBuilder2 = (ClassInfo.Builder) cBuilder; if ((access & Opcodes.ACC_VOLATILE) != 0 || desc.contains("util/concurrent")) { cBuilder2.setUsesConcurrency(); } final FieldInfo.Builder fBuilder = new FieldInfo.Builder(slashedClassName, name, desc, access); fBuilder.setSourceSignature(signature); return new AbstractFieldAnnotationVisitor() { @Override public org.objectweb.asm.AnnotationVisitor visitAnnotation(final String desc, boolean visible) { AnnotationValue value = new AnnotationValue(desc); fBuilder.addAnnotation(desc, value); return value.getAnnotationVisitor(); } @Override public void visitEnd() { cBuilder2.addFieldDescriptor(fBuilder.build()); } }; } return null; } @Override public void visitInnerClass(String name, String outerName, String innerName, int access) { if (name.equals(slashedClassName) && outerName != null) { if (cBuilder instanceof ClassInfo.Builder) { ClassDescriptor outerClassDescriptor = DescriptorFactory.createClassDescriptor(outerName); ((ClassInfo.Builder) cBuilder).setImmediateEnclosingClass(outerClassDescriptor); ((ClassInfo.Builder) cBuilder).setAccessFlags(access); } } } @Override public MethodVisitor visitMethod(final int access, final String methodName, final String methodDesc, String signature, String[] exceptions) { if (cBuilder instanceof ClassInfo.Builder) { final MethodInfo.Builder mBuilder = new MethodInfo.Builder(slashedClassName, methodName, methodDesc, access); mBuilder.setSourceSignature(signature); mBuilder.setThrownExceptions(exceptions); if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { mBuilder.setUsesConcurrency(); } return new ClassParserMethodVisitor(calledClassSet, mBuilder, methodName, access, methodDesc, cBuilder); } return null; } @Override public void visitOuterClass(String owner, String name, String desc) { } @Override public void visitSource(String arg0, String arg1) { if (cBuilder instanceof ClassInfo.Builder) { ((ClassInfo.Builder) cBuilder).setSource(arg0); } } }, ClassReader.SKIP_FRAMES); HashSet<ClassDescriptor> referencedClassSet = new HashSet<ClassDescriptor>(); // collect class references int constantPoolCount = classReader.readUnsignedShort(8); int offset = 10; char[] buf = new char[1024]; // System.out.println("constant pool count: " + constantPoolCount); for (int count = 1; count < constantPoolCount; count++) { int tag = classReader.readByte(offset); int size; switch (tag) { case Constants.CONSTANT_Methodref: case Constants.CONSTANT_InterfaceMethodref: case Constants.CONSTANT_Fieldref: case Constants.CONSTANT_Integer: case Constants.CONSTANT_Float: case Constants.CONSTANT_NameAndType: case Constants.CONSTANT_InvokeDynamic: size = 5; break; case Constants.CONSTANT_Long: case Constants.CONSTANT_Double: size = 9; count++; break; case Constants.CONSTANT_Utf8: size = 3 + classReader.readUnsignedShort(offset + 1); break; case Constants.CONSTANT_Class: @SlashedClassName String className = classReader.readUTF8(offset + 1, buf); if (className.indexOf('[') >= 0) { ClassParser.extractReferencedClassesFromSignature(referencedClassSet, className); } else if (ClassName.isValidClassName(className)) { ClassDescriptor classDescriptor = DescriptorFactory.instance().getClassDescriptor(className); referencedClassSet.add(classDescriptor); } size = 3; break; case Constants.CONSTANT_String: case Constants.CONSTANT_MethodType: size = 3; break; case Constants.CONSTANT_MethodHandle: size = 4; break; default: throw new IllegalStateException("Unexpected tag of " + tag + " at offset " + offset + " while parsing " + slashedClassName + " from " + codeBaseEntry); } // System.out.println(count + "@" + offset + " : [" + tag // +"] size="+size); offset += size; } cBuilder.setCalledClassDescriptors(calledClassSet); cBuilder.setReferencedClassDescriptors(referencedClassSet); }
From source file:graph.Modifier.java
License:Apache License
/** * Returns an integer bit field for the EnumSet, where the bit values are * defined as in the class file format.// www . ja v a2 s. c o m * * @param set Set of modifiers to convert to a bit field. * @return Integer bit field. */ public static int getBitField(EnumSet<Modifier> set) { int access = 0; if (set.contains(PUBLIC)) { access |= Opcodes.ACC_PUBLIC; } if (set.contains(PROTECTED)) { access |= Opcodes.ACC_PROTECTED; } if (set.contains(PRIVATE)) { access |= Opcodes.ACC_PRIVATE; } if (set.contains(STATIC)) { access |= Opcodes.ACC_STATIC; } if (set.contains(FINAL)) { access |= Opcodes.ACC_FINAL; } if (set.contains(SUPER)) { access |= Opcodes.ACC_SUPER; } if (set.contains(INTERFACE)) { access |= Opcodes.ACC_INTERFACE; } if (set.contains(ABSTRACT)) { access |= Opcodes.ACC_ABSTRACT; } if (set.contains(SYNTHETIC)) { access |= Opcodes.ACC_SYNTHETIC; } if (set.contains(ANNOTATION)) { access |= Opcodes.ACC_ANNOTATION; } if (set.contains(ENUM)) { access |= Opcodes.ACC_ENUM; } if (set.contains(VOLATILE)) { access |= Opcodes.ACC_VOLATILE; } if (set.contains(TRANSIENT)) { access |= Opcodes.ACC_TRANSIENT; } if (set.contains(SYNCHRONIZED)) { access |= Opcodes.ACC_SYNCHRONIZED; } if (set.contains(BRIDGE)) { access |= Opcodes.ACC_BRIDGE; } if (set.contains(VARARGS)) { access |= Opcodes.ACC_VARARGS; } if (set.contains(NATIVE)) { access |= Opcodes.ACC_NATIVE; } return access; }
From source file:graph.Modifier.java
License:Apache License
/** * Returns an EnumSet of the modifiers, based on the given bit field (where * the bit values are defined as in the class file format). * * @param access Integer bit field giving access modifiers. * @return Set of modifiers./* w ww .ja va 2s . co m*/ */ public static EnumSet<Modifier> getSet(int access) { EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class); if ((access & Opcodes.ACC_PUBLIC) != 0) { modifiers.add(Modifier.PUBLIC); } if ((access & Opcodes.ACC_PROTECTED) != 0) { modifiers.add(Modifier.PROTECTED); } if ((access & Opcodes.ACC_PRIVATE) != 0) { modifiers.add(Modifier.PRIVATE); } if ((access & Opcodes.ACC_STATIC) != 0) { modifiers.add(Modifier.STATIC); } if ((access & Opcodes.ACC_FINAL) != 0) { modifiers.add(Modifier.FINAL); } if ((access & Opcodes.ACC_SUPER) != 0) { modifiers.add(Modifier.SUPER); } if ((access & Opcodes.ACC_INTERFACE) != 0) { modifiers.add(Modifier.INTERFACE); } if ((access & Opcodes.ACC_ABSTRACT) != 0) { modifiers.add(Modifier.ABSTRACT); } if ((access & Opcodes.ACC_SYNTHETIC) != 0) { modifiers.add(Modifier.SYNTHETIC); } if ((access & Opcodes.ACC_ANNOTATION) != 0) { modifiers.add(Modifier.ANNOTATION); } if ((access & Opcodes.ACC_ENUM) != 0) { modifiers.add(Modifier.ENUM); } if ((access & Opcodes.ACC_VOLATILE) != 0) { modifiers.add(Modifier.VOLATILE); } if ((access & Opcodes.ACC_TRANSIENT) != 0) { modifiers.add(Modifier.TRANSIENT); } if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) { modifiers.add(Modifier.SYNCHRONIZED); } if ((access & Opcodes.ACC_BRIDGE) != 0) { modifiers.add(Modifier.BRIDGE); } if ((access & Opcodes.ACC_VARARGS) != 0) { modifiers.add(Modifier.VARARGS); } if ((access & Opcodes.ACC_NATIVE) != 0) { modifiers.add(Modifier.NATIVE); } if ((access & Opcodes.ACC_STRICT) != 0) { modifiers.add(Modifier.STRICT); } return modifiers; }
From source file:lapin.comp.asm.ASMByteCodeGenerator.java
License:Open Source License
private void generateFields(Env env) { Iterator it;// w w w .ja v a 2s.c o m // fields for static subr (singleton) instance _cw.visitField(Opcodes.ACC_STATIC + Opcodes.ACC_VOLATILE, "SELF", toTypeDescriptor(super.classInfo.classname()), null, null).visitEnd(); // fields for constants it = constTable.keySet().iterator(); while (it.hasNext()) { Object key = it.next(); // key: const object String val = Data.string(constTable.get(key)); _cw.visitField(Opcodes.ACC_PRIVATE, val, TYPE_OBJECT.getDescriptor(), null, null).visitEnd(); } // fields for vars it = varTable.keySet().iterator(); while (it.hasNext()) { Object key = it.next(); // key: symbol (var) String val = Data.string(varTable.get(key)); _cw.visitField(Opcodes.ACC_PRIVATE, val, TYPE_SYMBOL.getDescriptor(), null, null).visitEnd(); } // fields for lls it = llTable.keySet().iterator(); while (it.hasNext()) { Object key = it.next(); // key: lambdaList String val = Data.string(llTable.get(key)); _cw.visitField(Opcodes.ACC_PRIVATE, val, TYPE_LAMBDA_LIST.getDescriptor(), null, null).visitEnd(); } }