private static TagList getMonitorTags(Object obj) {
try {
Class<?> c = obj.getClass();
Field[] fields = c.getDeclaredFields();
for (Field field : fields) {
final MonitorTags anno = field.getAnnotation(MonitorTags.class);
if (anno != null) {
field.setAccessible(true);
return (TagList) field.get(obj);
}
}
Method[] methods = c.getDeclaredMethods();
for (Method method : methods) {
final MonitorTags anno = method.getAnnotation(MonitorTags.class);
if (anno != null) {
method.setAccessible(true);
return (TagList) method.invoke(obj);
}
}