Доменным объектом будем называть тот состояние которого будет храниться в базе данных.
Для описания классов доменных объектов будем использовать JPA (Java Persistense API)
Нашему приложению понадобиться 2 класса доменных объектов и 1 перечисляемый тип:
budget.domain.MoneyOperation - экземпляры данного
класса будут хранить все денежные операции
budget.domain.MoneyOperation - экземпляры класса
будут хранить статью денежной операции
budget.domain.OperationType - перечисляемый тип
определяющий тип операции (дебетовая или кредитовая)
Создавать классы начнем в обратном порядке. Но сначала создадим пакет.
Перечисляемый тип budget.domain.OperationType определяет тип денежной статьи. Денежная статья может быть двух типов: дебетовая (уменьшение бюджета, например, покупка чего-нибудь), кредитовая (увеличение бюджета, например, получение зароботной платы).
Для создания перечисляемого типа сделайте следующее.
В ветке Source Packages выделите пакет
budget.domain и нажмите Ctrl+N или в меню File
выберите пункт меню New File. Далее в качестве категории
выбираете Java classes а в качестве типа файла Java Enum
Далее в качестве Class name задаете OperationType
Экземпляры класса budget.domain.OperationItem будут хранить название и тип денежной статьи.
Класс OperationItem является обычным POJO в котором присутствуют
аннотации JPA и WEDA. На аннотации WEDA обратим более пристальное внимание.
Description - позволяет "прицепить" дополнительные атрибуты к свойству:
displayName - название свойства, которое будет появляться
в заголовках таблицы или в качестве названия поля при редактировании
значения свойства
pattern - определяет шаблон который будет использован
для преобразования значения свойства в строку и наооборот.
Constraints - позволяет задать список ограничений которым должно соответствовать значение свойства.
ConstraintId - задает ограничение по его идентификатору.
Подробнее об ограничениях можно прочитать в руководстве пользователя в разделе Ограничения
Для создания класса сделайте те же шаги что и при создания перечисляемого
типа. Только в качестве типа файла выберите Java Class
а в качестве Class name задайте OperationItem
Экземпляры класса budget.domain.MoneyOperation будут фиксировать все денежные операции.
Ничего нового по сравнению с классом OperationItem не появилось.
Кроме интересного ограничения с идентфикатором денежная-операция.
Но сейчас это ограничение мы рассматривать не будем. Вернемся к нему после
создания источников объектов.