/******************************************************************************* * Copyright (c) 2015 Jeff Martin. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser General Public * License v3.0 which accompanies this distribution, and is available at * http://www.gnu.org/licenses/lgpl.html * * Contributors: * Jeff Martin - initial API and implementation ******************************************************************************/ package cuchaz.enigma.bytecode; import javassist.CtBehavior; import javassist.CtClass; import javassist.CtField; import javassist.bytecode.AccessFlag; import javassist.bytecode.InnerClassesAttribute; public class ClassPublifier { public static CtClass publify(CtClass c) { // publify all the fields for (CtField field : c.getDeclaredFields()) { field.setModifiers(publify(field.getModifiers())); } // publify all the methods and constructors for (CtBehavior behavior : c.getDeclaredBehaviors()) { behavior.setModifiers(publify(behavior.getModifiers())); } // publify all the inner classes InnerClassesAttribute attr = (InnerClassesAttribute)c.getClassFile().getAttribute(InnerClassesAttribute.tag); if (attr != null) { for (int i=0; i