package org.apache.ode.bpel.obj.migrate; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MigUtils { public static List<Field> getAllFields(Class cls) { List<Field> fields = getFieldsRec(cls.getSuperclass(), new ArrayList<Field>()); fields.addAll(Arrays.asList(cls.getDeclaredFields())); return fields; } /** * get fields that are accessible to its sub-classes. * @param cls * @param fields * @return */ private static List<Field> getFieldsRec(Class cls, ArrayList<Field> fields) { if (cls != null){ Field[] fs = cls.getDeclaredFields(); for (Field f : fs){ if ((f.getModifiers() & Modifier.PRIVATE) == 0){ fields.add(f); } } getFieldsRec(cls.getSuperclass(), fields); } return fields; } }