gen.writeStringField("section", section); // "configuration":"EnumName"
gen.writeStringField("description", enumDescription); // ,"description": "EnumDescription"
gen.writeFieldName("sub sections"); // ,"sections":
gen.writeStartObject(); // {
String lastSection = "";
EnumSet values = EnumSet.allOf( en );
for (Object v : values) {
String key=(String) (en.getMethod("getKey")).invoke(v);
boolean isVisible=(Boolean)(en.getMethod("isVisible")).invoke(v);
String valueAsString;
if (isVisible) valueAsString=(String) (en.getMethod("getValueAsString")).invoke(v);