![JAR search and dependency download from the Maven repository](/logo.png)
io.leopard.web.nobug.xss.FieldCache Maven / Gradle / Ivy
package io.leopard.web.nobug.xss;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class FieldCache {
private static Map> map = new ConcurrentHashMap>();
protected static List listFields(Class> clazz) {
String className = clazz.getName();
List list = map.get(className);
if (list != null) {
return list;
}
return loadFields(clazz, className);
}
protected static synchronized List loadFields(Class> clazz, String className) {
List list = map.get(className);
if (list != null) {
return list;
}
list = new ArrayList();
while (true) {
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
list.add(field);
}
if (clazz.getSuperclass() == null) {
break;
}
clazz = clazz.getSuperclass();
}
map.put(className, list);
return list;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy