CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
private void ensureNullaryCtor(CtClass cc) throws NotFoundException, CannotCompileException { // Build a null-ary constructor if needed String clzname = cc.getSimpleName(); if( !hasExisting(clzname,"()V",cc.getDeclaredConstructors()) ) { String body = "public "+clzname+"() { }"; cc.addConstructor(CtNewConstructor.make(body,cc)); } else { CtConstructor ctor = cc.getConstructor("()V"); ctor.setModifiers(javassist.Modifier.setPublic(ctor.getModifiers())); } }
CtClass addSerializationMethods( CtClass cc ) throws CannotCompileException, NotFoundException { if( cc.subclassOf(_enum) ) exposeRawEnumArray(cc); if( cc.subclassOf(_iced) ) ensureAPImethods(cc); if( cc.subclassOf(_iced) || cc.subclassOf(_dtask)|| cc.subtypeOf(_freezable)) { cc.setModifiers(javassist.Modifier.setPublic(cc.getModifiers())); ensureSerMethods(cc); ensureNullaryCtor(cc); ensureNewInstance(cc); ensureType(cc); } return cc; }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
public int toModifiers(int modifiers) { switch (this) { case Public: return Modifier.setPublic(modifiers); case Protected: return Modifier.setProtected(modifiers); case Package: return Modifier.setPackage(modifiers); case Private: return Modifier.setPrivate(modifiers); default: throw new IllegalArgumentException("Unknown Visibility?!?!"); } } }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
CtNewClass(String name, ClassPool cp, boolean isInterface, CtClass superclass) { super(name, cp); wasChanged = true; String superName; if (isInterface || superclass == null) superName = null; else superName = superclass.getName(); classfile = new ClassFile(isInterface, name, superName); if (isInterface && superclass != null) classfile.setInterfaces(new String[] { superclass.getName() }); setModifiers(Modifier.setPublic(getModifiers())); hasConstructor = isInterface; }
private static void transform(final CtClass clazz, final String name) { try { final int modifiers = clazz.getModifiers(); if (Modifier.isPackage(modifiers)) { if (isNotSystemClass(name) && !(clazz.isInterface() && clazz.getDeclaringClass() != null)) { clazz.setModifiers(Modifier.setPublic(modifiers)); } } } catch (NotFoundException e) { // OK, continue } }
@Override public CtClass transform(final CtClass clazz) { if (clazz.isInterface()) { return clazz; } if (getStrategy() == CLASSLOADER) { for (CtConstructor c : clazz.getDeclaredConstructors()) { final int modifiers = c.getModifiers(); if (!Modifier.isPublic(modifiers)) { c.setModifiers(Modifier.setPublic(modifiers)); } } } return clazz; }
private static void fixMember(CtMember member, boolean useReflection) { //Make member public if (useReflection) { member.setModifiers(Modifier.setPublic(member.getModifiers())); AnnotationUtil.annotateReflectionAccessor(member, null, null, null); } //Create a RW alias for final fields if (member instanceof CtField && Modifier.isFinal(member.getModifiers())) { try { CtField rwField = new CtField((CtField) member, member.getDeclaringClass()); rwField.setName(member.getName() + "_rw"); rwField.setModifiers(Modifier.setPublic(rwField.getModifiers()) & ~Modifier.FINAL); AnnotationUtil.annotateReflectionAccessor(rwField, member.getName(), null, null); member.getDeclaringClass().addField(rwField); } catch (CannotCompileException e) { System.err.println("Cannot add field '" + member.getName() + "_rw' to " + member.getDeclaringClass().getName()); } } }
public int mergedModifiers() { int modifiers = getModifiers(versions.lastEntry().getValue()); int andFlags = -1; int orFlags = 0; for (T v : versions.values()) { int x = getModifiers(v); andFlags &= x; orFlags |= x; } //Least-acessible mode between all versions if (Modifier.isPrivate(orFlags)) { modifiers = Modifier.setPrivate(modifiers); } else if (Modifier.isPackage(orFlags)) { modifiers = Modifier.setPackage(modifiers); } else if (Modifier.isProtected(orFlags)) { modifiers = Modifier.setProtected(modifiers); } else { modifiers = Modifier.setPublic(modifiers); } // If we mix-up static and non-static versions of the same method (PackageParser.collectCertificates), // we mark it as non-topublic, non-static to force the use of reflection if ( (andFlags & Modifier.STATIC) != (orFlags & Modifier.STATIC) ) { modifiers &= ~Modifier.STATIC; if (Modifier.isPublic(modifiers)) { modifiers = Modifier.setProtected(modifiers); } } return modifiers; }
cls.setModifiers(Modifier.setPublic(cls.getModifiers())); }); } catch (NotFoundException | CannotCompileException e) {
cls.setModifiers(Modifier.setPublic(cls.getModifiers())); }); } catch (final NotFoundException e) {
genInstanceAdvisor = TransformerCommon.makeNestedClass(clazz, innerClassName, classStatic); genInstanceAdvisor.setModifiers(Modifier.setPublic(genInstanceAdvisor.getModifiers()));
try { CtClass ctEncounter = classPool.get("com.wurmonline.server.zones.Encounter"); ctEncounter.setModifiers(Modifier.setPublic(ctEncounter.getModifiers())); CtConstructor ctConstructor = ctEncounter.getConstructor(Descriptor.ofConstructor(new CtClass[0])); ctConstructor.setModifiers(Modifier.setPublic(ctConstructor.getModifiers())); } catch (NotFoundException e) { throw new HookException(e);
ctClass.setModifiers(Modifier.setPublic(ctClass.getModifiers())); InnerClassesAttribute innerClasses = (InnerClassesAttribute)ctClass.getClassFile().getAttribute(InnerClassesAttribute.tag); if (innerClasses != null) { for (int i = 0; i < innerClasses.tableLength(); i++) { if (ctClass.getName().equals(innerClasses.outerClass(i))) { innerClasses.setAccessFlags(i, Modifier.setPublic(innerClasses.accessFlags(i)));