Как получить все значения Enum в XMLBeans?

Apache XMLBeans можно использовать для создания классов и интерфейсов Java из файлов определения схемы XML (XSD). Он также генерирует Enums на основе StringEnumAbstractBase и StringEnumAbstractBase.Table для представления значений домена. Они удобны для ввода только допустимых значений. Однако я хочу получить все эти значения для создания таблицы JCombobox, JTable или html.

Есть ли вызов API XMLBeans для получения всех значений Enum из сгенерированного класса? Доступен ли единственный доступный вариант — какое-то отражение Java?

Спасибо


person Luis Soeiro    schedule 05.12.2008    source источник


Ответы (2)


Это сработало для меня:

for (int i = 1; i <= MyEnum.Enum.table.lastInt(); i++) 
{
  System.out.println(MyEnum.Enum.forInt(i));
}
person Nick Holt    schedule 05.12.2008

Вот еще один способ получить его:

public static List<String> getEnumValueList(XmlString xmlString){
    List<String> values = new ArrayList<String>();
    SchemaStringEnumEntry valArr[] = xmlString.schemaType().getStringEnumEntries();
    for(SchemaStringEnumEntry val : valArr){
        values.add(val.getString());
    }
    return values;
}

Итак, чтобы получить список значений перечисления ModelType, я делаю следующее:

getEnumValueList(ModelType.Factory.newInstance());
person Community    schedule 31.08.2009