Enumeration
- стереотип UML-класса, обозначающий перечислимый тип.
Атрибуты UML-класса являются значениями перечислимого типа.
Дополнительно редактируемые свойства
Окно редактирования свойств перечислимого типа выглядит следующим образом (две закладки):
Закладка Класс
Name
- имя перечислимого типа, то же, что и отображается непосредственно наUML
-классе.Description
- при необходимости, некоторое подробное описание, для повышения информативности модели в Flexberry Designer, генерируется в код на.Net
-языке какDocComment
;OnlyShowSelectedValue
- не используется (зарезервировано для будущих версий);Packet, NamespacePostfix
- позволяют настроить сборку и пространство имен, в которое должен генерироваться тип, см. Расположение сборок после генерации кода.
Закладка Возможные значения
Эта страница предназначена для настройки свойств значений перечислимого типа. Для каждого свойства:
Name
- имя значения перечислимого типа, оно же отображается непосредственно на UML-классе.Description
- ри необходимости, некоторое подробное описание значения, для повышения информативности модели в Flexberry Designer, генерируется в код на.Net
-языке какDocComment
;Caption
- позволяет указать значение, информативное для пользователя (используется в пользовательском интерфейсе);DefaultValue
- целое число для значения перечислимого типа.
Что генерируется с описания перечислимого типа
Что генерируется | Генерация в SQL DDL | Генерация в .Net-язык |
---|---|---|
Имя UML-класса | Имя .Net-типа (перечислимый тип) | |
Имя атрибута UML-класса | Выбирается самое длинное имя из всех в перечислимом типе, считается число символов, поле в таблице объявляется типа VARCHAR(число символов).Далее, сервисы данных сохраняют значения перечислимого типа как строковые константы, соответствующие именам | Имя константы в перечислимом типе |
Свойство Caption атрибута UML-класса | Значения перечислимого типа хранятся в БД значениями заголовков |
Генерируется .Net-атрибут EnumCaption (Namespace: ICSSoft.STORMNET Assembly: ICSSoft.STORMNET.DataObject (in ICSSoft.STORMNET.DataObject.dll) ) |
Свойство DefaultValue атрибута UML-класса |
Целое число для значения перечислимого типа (если не указано иначе, то при редактировании поля перечислимого типа по умолчанию будет отображён элемент с минимальным DefaultValue , а в выпадающем списке элементы перечислимого типа будут отображаться в порядке возрастания их DefaultValue ) |
Пример сгенерированного в C# кода перечислимого типа:
public enum СостояниеОшибки
{
Черновик,
Зарегистрирована,
Оценка,
Подтверждена,
Отладка,
Задержка,
Повторена,
AlphaTesting,
BetaTesting,
Исправлена,
}
Отображение значений перечислимого типа
Программист может настроить отображение значений перечислимого типа в виде одного выбираемого (подобно ComboBox
), либо нескольких помечаемых (подобно RadioButton
). Это делается указанием атрибута OnlyShowSelectedValueAttribute
, указываемого для перечислимого типа.
Заголовки значений перечислимого типа
Часто бывает удобным, чтобы значения перечислимых типов имели некоторый заголовок, понятный пользователю. Этот заголовок приписывается атрибутом Caption
непосредственно значениям перечислимого типа.
Пример:
public enum AccessModifier
{
[Caption("+")]
Public,
[Caption("-")]
Private,
[Caption("#")]
Protected
}
Значения перечислимого типа хранятся в БД значениями заголовков.
Пустые значения
Чтобы добавить пустое значение в перечисление (пустую строку), необходимо создать новый элемент и в его Caption
поставить знак “тильда” (~):
В результате, в коде появится следующая запись:
[Caption(""))
Пусто,
Работа с заголовками
Программист может конвертировать значения от Caption
к перечислимому типу и обратно, вызовом методов статического класса ICSSoft.STORMNET.EnumCaption
:
EnumCaption.GetCaptionFor(object value)
EnumCaption.GetValueFor(string caption, Type enumType)
EnumCaption.TryGetValueFor<TEnum>(string caption, out TEnum enumValue)