package kwik.util; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.simpleframework.xml.Attribute; import org.simpleframework.xml.Element; public class Util { public static List<? extends Map<String, ?>> getMapped(List<?> objects, String[] desired_fields) { ArrayList<Map<String, ?>> list = new ArrayList<Map<String, ?>>(); for (Object object : objects) { HashMap<String, Object> map = new HashMap<String, Object>(); Class<? extends Object> c = object.getClass(); for (Field field : c.getFields()) { Annotation[] ann = (Annotation[]) field.getAnnotations(); for (Annotation annotation : ann) { if (annotation instanceof Element || annotation instanceof Attribute) { try { boolean is_in = false; for (String desired_field : desired_fields) { if (desired_field.equals(field.getName())) { is_in = true; break; } } if (is_in) { map.put(field.getName(), field.get(object)); } } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } list.add(map); } return list; } }