本文整理汇总了Java中org.objectweb.asm.Opcodes.ACC_PUBLIC属性的典型用法代码示例。如果您正苦于以下问题:Java Opcodes.ACC_PUBLIC属性的具体用法?Java Opcodes.ACC_PUBLIC怎么用?Java Opcodes.ACC_PUBLIC使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.objectweb.asm.Opcodes
的用法示例。
在下文中一共展示了Opcodes.ACC_PUBLIC属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: registerClassMemberVar
private void registerClassMemberVar(TContextClass class_ctx, Container container) throws CompileException {
ClassWriter cw = class_ctx.getClassWriter();
Debug.assertion(cw != null, "ClassWriter should not be null");
AbsType field_type = container.getType();
Debug.assertion(field_type != null, "Container Type should not be null");
//// Compiled Instruction
LOG.debug(
"Adding Field(" + container.name + ":" + field_type.getMthdDscStr() + ") in (" + class_ctx.getName() + ")");
int access = 0;
access |= Opcodes.ACC_PUBLIC;
// access |= Opcodes.ACC_PROTECTED;
if (container.isSingleton()) {
access |= Opcodes.ACC_STATIC;
}
cw.visitField(access, container.name, field_type.getMthdDscStr(), null, null).visitEnd();
//// End
}
示例2: visitField
@Override
public FieldVisitor visitField(final int access, final String name,
final String desc, final String signature, final Object value) {
String s = remapper.mapFieldName(className, name, desc);
if ("-".equals(s)) {
return null;
}
if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) {
if ((access & Opcodes.ACC_FINAL) != 0
&& (access & Opcodes.ACC_STATIC) != 0 && desc.length() == 1) {
return null;
}
if ("org/objectweb/asm".equals(pkgName) && s.equals(name)) {
System.out.println("INFO: " + clsName + "." + s
+ " could be renamed");
}
super.visitField(access, name, desc, null, value);
} else {
if (!s.equals(name)) {
throw new RuntimeException("The public or protected field "
+ className + '.' + name + " must not be renamed.");
}
super.visitField(access, name, desc, null, value);
}
return null; // remove debug info
}
示例3: getAccess
public int getAccess() {
if (asmNodes != null) {
return asmNodes[0].access;
} else {
int ret = Opcodes.ACC_PUBLIC;
if (!implementers.isEmpty()) {
ret |= Opcodes.ACC_INTERFACE | Opcodes.ACC_ABSTRACT;
} else if (superClass != null && superClass.id.equals("Ljava/lang/Enum;")) {
ret |= Opcodes.ACC_ENUM;
if (childClasses.isEmpty()) ret |= Opcodes.ACC_FINAL;
} else if (interfaces.size() == 1 && interfaces.iterator().next().id.equals("Ljava/lang/annotation/Annotation;")) {
ret |= Opcodes.ACC_ANNOTATION | Opcodes.ACC_INTERFACE | Opcodes.ACC_ABSTRACT;
}
return ret;
}
}
示例4: transformClassAccessForInstantRun
public static int transformClassAccessForInstantRun(int access) {
IncrementalVisitor.AccessRight accessRight = IncrementalVisitor.AccessRight.fromNodeAccess(access);
int fixedVisibility = accessRight == IncrementalVisitor.AccessRight.PACKAGE_PRIVATE
? access | Opcodes.ACC_PUBLIC
: access;
// TODO: only do this on KitKat?
return fixedVisibility | Opcodes.ACC_SUPER;
}
示例5: checkForPublicConstructor
private static void checkForPublicConstructor(ClassNode node)
{
for (MethodNode method : node.methods)
{
if (method.name.equals("<init>") && (method.access & Opcodes.ACC_PUBLIC) == Opcodes.ACC_PUBLIC)
return;
}
throw new RuntimeException(" Block Class " + node.name + " has no public constructor");
}
示例6: visitField
@Override
public FieldVisitor visitField(final int access, final String name,
final String desc, final String signature, final Object value) {
if (computeSVUID) {
if ("serialVersionUID".equals(name)) {
// since the class already has SVUID, we won't be computing it.
computeSVUID = false;
hasSVUID = true;
}
/*
* Remember field for SVUID computation For field modifiers, only
* the ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC,
* ACC_FINAL, ACC_VOLATILE, and ACC_TRANSIENT flags are used when
* computing serialVersionUID values.
*/
if ((access & Opcodes.ACC_PRIVATE) == 0
|| (access & (Opcodes.ACC_STATIC | Opcodes.ACC_TRANSIENT)) == 0) {
int mods = access
& (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE
| Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC
| Opcodes.ACC_FINAL | Opcodes.ACC_VOLATILE | Opcodes.ACC_TRANSIENT);
svuidFields.add(new Item(name, mods, desc));
}
}
return super.visitField(access, name, desc, signature, value);
}
示例7: getScore
@Override
public double getScore(MethodInstance methodA, MethodInstance methodB, ClassEnvironment env) {
if (!checkAsmNodes(methodA, methodB)) return compareAsmNodes(methodA, methodB);
int mask = (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED | Opcodes.ACC_PRIVATE) | Opcodes.ACC_FINAL | Opcodes.ACC_SYNCHRONIZED | Opcodes.ACC_BRIDGE | Opcodes.ACC_VARARGS | Opcodes.ACC_STRICT | Opcodes.ACC_SYNTHETIC;
int resultA = methodA.getAsmNode().access & mask;
int resultB = methodB.getAsmNode().access & mask;
return 1 - Integer.bitCount(resultA ^ resultB) / 8.;
}
示例8: getAccess
@Override
public int getAccess() {
if (asmNode == null) {
int ret = Opcodes.ACC_PUBLIC;
if (isStatic) ret |= Opcodes.ACC_STATIC;
return ret;
} else {
return asmNode.access;
}
}
示例9: visitMethod
@Override
public MethodVisitor visitMethod(final int access, final String name,
final String desc, final String signature, final String[] exceptions) {
if (computeSVUID) {
if ("<clinit>".equals(name)) {
hasStaticInitializer = true;
}
/*
* Remembers non private constructors and methods for SVUID
* computation For constructor and method modifiers, only the
* ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
* ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT and ACC_STRICT flags
* are used.
*/
int mods = access
& (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE
| Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC
| Opcodes.ACC_FINAL | Opcodes.ACC_SYNCHRONIZED
| Opcodes.ACC_NATIVE | Opcodes.ACC_ABSTRACT | Opcodes.ACC_STRICT);
// all non private methods
if ((access & Opcodes.ACC_PRIVATE) == 0) {
if ("<init>".equals(name)) {
svuidConstructors.add(new Item(name, mods, desc));
} else if (!"<clinit>".equals(name)) {
svuidMethods.add(new Item(name, mods, desc));
}
}
}
return super.visitMethod(access, name, desc, signature, exceptions);
}
示例10: transformAccessForInstantRun
public static int transformAccessForInstantRun(int access) {
IncrementalVisitor.AccessRight accessRight = IncrementalVisitor.AccessRight.fromNodeAccess(access);
if (accessRight != IncrementalVisitor.AccessRight.PRIVATE) {
access &= ~Opcodes.ACC_PROTECTED;
access &= ~Opcodes.ACC_PRIVATE;
return access | Opcodes.ACC_PUBLIC;
}
return access;
}
示例11: appendAccess
/**
* Appends a string representation of the given access modifiers to
* {@link #buf buf}.
*
* @param access
* some access modifiers.
*/
private void appendAccess(final int access) {
if ((access & Opcodes.ACC_PUBLIC) != 0) {
buf.append("public ");
}
if ((access & Opcodes.ACC_PRIVATE) != 0) {
buf.append("private ");
}
if ((access & Opcodes.ACC_PROTECTED) != 0) {
buf.append("protected ");
}
if ((access & Opcodes.ACC_FINAL) != 0) {
buf.append("final ");
}
if ((access & Opcodes.ACC_STATIC) != 0) {
buf.append("static ");
}
if ((access & Opcodes.ACC_SYNCHRONIZED) != 0) {
buf.append("synchronized ");
}
if ((access & Opcodes.ACC_VOLATILE) != 0) {
buf.append("volatile ");
}
if ((access & Opcodes.ACC_TRANSIENT) != 0) {
buf.append("transient ");
}
if ((access & Opcodes.ACC_ABSTRACT) != 0) {
buf.append("abstract ");
}
if ((access & Opcodes.ACC_STRICT) != 0) {
buf.append("strictfp ");
}
if ((access & Opcodes.ACC_SYNTHETIC) != 0) {
buf.append("synthetic ");
}
if ((access & Opcodes.ACC_MANDATED) != 0) {
buf.append("mandated ");
}
if ((access & Opcodes.ACC_ENUM) != 0) {
buf.append("enum ");
}
}
示例12: isPublic
private static boolean isPublic(MethodNode m) {
return (m.access & Opcodes.ACC_PUBLIC) != 0;
}
示例13: ConstructedNestedClass
public ConstructedNestedClass(ClassNode outer, String inner) {
super(outer.getName() + "$" + replacePoints(inner), Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE);
this.knownEnclosingType = outer;
this.isPrimaryNode = false;
}
示例14: LowerCaseClass
public LowerCaseClass(String name) {
super(name, Opcodes.ACC_PUBLIC, ClassHelper.OBJECT_TYPE);
isPrimaryNode = false;
this.className = name;
}
示例15: isPublic
public static ClassAccessMatcher isPublic() {
return new ClassAccessMatcher(Opcodes.ACC_PUBLIC);
}