Как получить все значения Enum в XMLBeans? - PullRequest
1 голос
/ 05 декабря 2008

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

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 05 декабря 2008

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

for (int i = 1; i <= MyEnum.Enum.table.lastInt(); i++) 
{
  System.out.println(MyEnum.Enum.forInt(i));
}
2 голосов
/ 31 августа 2009

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

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());
...