Как загрузить значение перечисления (статическое вложенное) из осветителей YAML в Play Framework? - PullRequest
3 голосов
/ 10 декабря 2010
public class Request extends Model {
    public static enum Category {
        First, Second, Third
    }
        public Category category;
}

Мне кажется, что я не могу правильно создать Запрос с категорией в моих тестовых данных / исходных данных YAML.Я пробовал такие вещи, как:

Request(areq):
    category: Request.Category.Third

и несколько других вариантов.Ничего действительно не работает.Страница SnakeYAML дает мне несколько дразнящих подсказок, но я не вижу, как правильно ссылаться на пакеты моего приложения.Каков правильный синтаксис для этого?

Ответы [ 3 ]

5 голосов
/ 15 декабря 2010

Почему бы вам не использовать только

...
category: Third

SnakeYAML должен распознавать тип категории и преобразовывать третью строку в третье значение перечисления категории во время создания объекта.

1 голос
/ 01 августа 2012

В Play1.2.x вы также можете использовать эту форму:

Светильники:

EnumTest(enumtest01):
  status: ${models.EnumTest.Status.ACTIVE}

EnumTest(enumtest02):
  status: ${models.EnumTest.Status.DELETED}

Для этой модели:

@Entity
public class EnumTest extends Model {

    public enum Status {
        ACTIVE, DELETED
    }

    public Status status;

}

Как вы можете использоватьШаблоны Groovy в маршрутах и ​​файл application.conf также можно использовать в файлах yml.

0 голосов
/ 11 декабря 2010

Если честно, я не опытный пользователь, но я думаю, что Request - это дурное имя, потому что класс существует в play-framework. Поэтому я бы порекомендовал переименовать его. Но для вашей проблемы это не обязательно. Используйте полное имя, означающее models.Request.Category.Third.

...