public boolean isPublic(Object o) { Integer accessFlags = o instanceof ClassFile ? ((ClassFile) o).getAccessFlags() : o instanceof FieldInfo ? ((FieldInfo) o).getAccessFlags() : o instanceof MethodInfo ? ((MethodInfo) o).getAccessFlags() : null; return accessFlags != null && AccessFlag.isPublic(accessFlags); }
public boolean isPublic(Object o) { Integer accessFlags = o instanceof ClassFile ? ((ClassFile) o).getAccessFlags() : o instanceof FieldInfo ? ((FieldInfo) o).getAccessFlags() : o instanceof MethodInfo ? ((MethodInfo) o).getAccessFlags() : null; return accessFlags != null && AccessFlag.isPublic(accessFlags); }
public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1 && (inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; return AccessFlag.toModifier(acc); }
@Override public void scan(final Object cls) { final ClassFile classFile = (ClassFile)cls; String className = classFile.getName(); String superclass = classFile.getSuperclass(); boolean isAbstract = (classFile.getAccessFlags() & (AccessFlag.INTERFACE | AccessFlag.ABSTRACT)) != 0; ChildClassDescriptor scannedClass = new ChildClassDescriptor(className, isAbstract); if (!superclass.equals(Object.class.getName())) { children.put(superclass, scannedClass); } for (String anInterface : classFile.getInterfaces()) { children.put(anInterface, scannedClass); } }
= AccessFlag.toModifier(cf.getAccessFlags() & ~AccessFlag.SYNCHRONIZED); out.println("major: " + cf.major + ", minor: " + cf.minor + " modifiers: " + Integer.toHexString(cf.getAccessFlags())); out.println(Modifier.toString(mod) + " class " + cf.getName() + " extends " + cf.getSuperclass());
private static boolean hasMainMethod(ClassFile cls) { int flags = cls.getAccessFlags(); if (Modifier.isInterface(flags) || Modifier.isAnnotation(flags) || Modifier.isEnum(flags)) return false; for (Object m : cls.getMethods()) { if (m instanceof MethodInfo) { if (isMainMethod((MethodInfo) m)) return true; } } return false; }
@Override public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1) { if ((inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; if ((inner & AccessFlag.PUBLIC) != 0) acc |= AccessFlag.PUBLIC; else { acc &= ~AccessFlag.PUBLIC; //clear PUBLIC if ((inner & AccessFlag.PROTECTED) != 0) acc |= AccessFlag.PROTECTED; else if ((inner & AccessFlag.PRIVATE) != 0) acc |= AccessFlag.PRIVATE; } } return AccessFlag.toModifier(acc); }
= AccessFlag.toModifier(cf.getAccessFlags() & ~AccessFlag.SYNCHRONIZED); out.println("major: " + cf.major + ", minor: " + cf.minor + " modifiers: " + Integer.toHexString(cf.getAccessFlags())); out.println(Modifier.toString(mod) + " class " + cf.getName() + " extends " + cf.getSuperclass());
public CtClass makeNestedClass(String name, boolean isStatic) { if (!isStatic) throw new RuntimeException( "sorry, only nested static class is supported"); checkModify(); CtClass c = classPool.makeNestedClass(getName() + "$" + name); ClassFile cf = getClassFile2(); ClassFile cf2 = c.getClassFile2(); InnerClassesAttribute ica = (InnerClassesAttribute)cf.getAttribute( InnerClassesAttribute.tag); if (ica == null) { ica = new InnerClassesAttribute(cf.getConstPool()); cf.addAttribute(ica); } ica.append(c.getName(), this.getName(), name, (cf2.getAccessFlags() & ~AccessFlag.SUPER) | AccessFlag.STATIC); cf2.addAttribute(ica.copy(cf2.getConstPool(), null)); return c; }
@Override public CtClass makeNestedClass(String name, boolean isStatic) { if (!isStatic) throw new RuntimeException( "sorry, only nested static class is supported"); checkModify(); CtClass c = classPool.makeNestedClass(getName() + "$" + name); ClassFile cf = getClassFile2(); ClassFile cf2 = c.getClassFile2(); InnerClassesAttribute ica = (InnerClassesAttribute)cf.getAttribute( InnerClassesAttribute.tag); if (ica == null) { ica = new InnerClassesAttribute(cf.getConstPool()); cf.addAttribute(ica); } ica.append(c.getName(), this.getName(), name, (cf2.getAccessFlags() & ~AccessFlag.SUPER) | AccessFlag.STATIC); cf2.addAttribute(ica.copy(cf2.getConstPool(), null)); return c; }
public static ClassMetadata instance( InputStream stream ) throws Exception { ClassFile clazz = new ClassFile(new DataInputStream(stream)); if ((AccessFlag.ENUM & clazz.getAccessFlags()) == AccessFlag.ENUM) { return new EnumMetadata(clazz); } return new ClassMetadata(clazz); } }
public static ClassMetadata instance( InputStream stream ) throws Exception { ClassFile clazz = new ClassFile(new DataInputStream(stream)); if ((AccessFlag.ENUM & clazz.getAccessFlags()) == AccessFlag.ENUM) { return new EnumMetadata(clazz); } return new ClassMetadata(clazz); } }
public static ClassMetadata instance( InputStream stream ) throws Exception { ClassFile clazz = new ClassFile(new DataInputStream(stream)); if ((AccessFlag.ENUM & clazz.getAccessFlags()) == AccessFlag.ENUM) { return new EnumMetadata(clazz); } return new ClassMetadata(clazz); } }
public boolean isPublic(Object o) { Integer accessFlags = o instanceof ClassFile ? ((ClassFile) o).getAccessFlags() : o instanceof FieldInfo ? ((FieldInfo) o).getAccessFlags() : o instanceof MethodInfo ? ((MethodInfo) o).getAccessFlags() : null; return accessFlags != null && AccessFlag.isPublic(accessFlags); }
public boolean isPublic(Object o) { Integer accessFlags = o instanceof ClassFile ? ((ClassFile) o).getAccessFlags() : o instanceof FieldInfo ? ((FieldInfo) o).getAccessFlags() : o instanceof MethodInfo ? ((MethodInfo) o).getAccessFlags() : null; return accessFlags != null && AccessFlag.isPublic(accessFlags); }
public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1 && (inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; return AccessFlag.toModifier(acc); }
public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1 && (inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; return AccessFlag.toModifier(acc); }
public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1 && (inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; return AccessFlag.toModifier(acc); }
public int getModifiers() { ClassFile cf = getClassFile2(); int acc = cf.getAccessFlags(); acc = AccessFlag.clear(acc, AccessFlag.SUPER); int inner = cf.getInnerAccessFlags(); if (inner != -1 && (inner & AccessFlag.STATIC) != 0) acc |= AccessFlag.STATIC; return AccessFlag.toModifier(acc); }
private static boolean hasMainMethod(ClassFile cls) { int flags = cls.getAccessFlags(); if (Modifier.isInterface(flags) || Modifier.isAnnotation(flags) || Modifier.isEnum(flags)) return false; for (Object m : cls.getMethods()) { if (m instanceof MethodInfo) { if (isMainMethod((MethodInfo) m)) return true; } } return false; }