A.2. datatypes.xml

Файл datatypes.xml определяет доступные типы данных атрибутов сущностей, см. Раздел 4.2.2.3, «Datatype»

Файл по умолчанию расположен в пакете com.haulmont.chile.core.datatypes базового проекта cuba. Если в прикладном проекте в модуле global создать аналогичный файл в корне CLASSPATH, то типы данных будут загружены из него.

Механизм загрузки не поддерживает расширение, т.е. все типы данных загружаются из одного файла - либо из корня CLASSPATH, либо из пакета com.haulmont.chile.core.datatypes.

Доступные типы данных описываются в элементах datatype. Обязательным атрибутом является только class, в котором указывается класс типа данных, реализующий интерфейс Datatype. Набор остальных атрибутов зависит от класса, объекту которого при создании передается соответствующий XML элемент, и разбор атрибутов происходит в этом классе.

Типичные атрибуты:

  • format - формат преобразования в строку без учета локали

  • groupingSeparator - символ-разделитель групп разрядов числа при форматировании без учета локали

  • decimalSeparator - символ-разделитель целой и дробной части числа при форматировании без учета локали

Пример:

<datatypes>

  <datatype class="com.haulmont.chile.core.datatypes.impl.BooleanDatatype"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.IntegerDatatype"
            format="0" groupingSeparator=""/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.LongDatatype"
            format="0" groupingSeparator=""/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.DoubleDatatype"
            format="0.###" decimalSeparator="." groupingSeparator=""/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.BigDecimalDatatype"
            format="0.####" decimalSeparator="." groupingSeparator=""/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.StringDatatype"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.DateTimeDatatype"
            format="yyyy-MM-dd'T'HH:mm:ss.SSS"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.DateDatatype"
            format="yyyy-MM-dd"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.TimeDatatype"
            format="HH:mm:ss"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.UUIDDatatype"/>

  <datatype class="com.haulmont.chile.core.datatypes.impl.ByteArrayDatatype"/>

</datatypes>