public static Map<String, Field> getFields(Class<?> cls) {
		Map<String, Field> fieldMap = new HashMap<String, Field>();
		Class<?> superClass = cls.getSuperclass();
		if(superClass != null) {
			fieldMap.putAll(getFields(superClass));
		}
		Field[] fields = cls.getDeclaredFields();
		for (Field field : fields) {
			fieldMap.put(field.getName(), field);
		}
		return fieldMap;
	}