private static <S> void loadAttributeInfo(Class<S> clazz, Method m, HashMap<String, AttributeInfo> attrInfoMap)
throws NoSuchMethodException {
String methodName = m.getName();
Attribute attr = (Attribute) m.getAnnotation(Attribute.class);
if (attr != null) {
if (methodName.startsWith("set")) {
String attrName = attr.name();
if (attrName == null || attrName.length() == 0) {
if (methodName.length() < 4) {
throw new RuntimeException("Invalid method name" + methodName);
} else {
attrName = ("" + methodName.charAt(3)).toLowerCase() + methodName.substring(4);