Skip to content
mazzy edited this page Dec 29, 2019 · 5 revisions

Ensure возвращают исходный args. Бросают исключение, если в аргументах не подходящие параметры.

Ensure методы - это методы объекта, в отличие от статических Assert методов. Поэтому ensure методы удобно записывать цепочкой в одну строку при инициализации переменных. Но ensure методы не могут проверить, что сам args инициализирован. Если args == null, то виртуальная машина бросит исключение на args.ensure() еще до срабатывания метода.

Метод Должно быть
ensureCallerFormName Вызвавший объект должен являться потомком FormRun и название формы совпадает с указанным. Иначе бросает исключение
ensureCallerType Вызвавший объект должен являться потомком указанного класса. Иначе бросает исключение
ensureEnum Тип и значение enumа в аргументах должен совпадать с указанным. Иначе бросает исключение
ensureEnumType Тип enum в аргументах должен совпадать с указанным. Иначе бросает исключение
ensureFormDatasource Переданная запись должна находиться в датасорсе. Иначе бросает исключение
ensureParm Значение строкового параметра должно удовлетворять шаблону. Иначе бросает исключение. Проверка выполняется при помощи функции match. Если оставить шаблон по умолчанию, то бросает исключение если строка параметров пустая
ensureRecord Переданная запись должна быть из указанной таблицы. Иначе бросает исключение
ensureRecordExists Переданная запись должна существовать в базе данных recId != 0. Иначе бросает исключение
ensureRecordTableIds Переданная запись должна быть одной из перечисленных в контейнере таблиц. Иначе бросает исключение

Пример использования

public static void main(Args args)
{
    ProdTable prod = args.ensureCallerType(classnum(FormRun)).getRecord(tablenum(ProdTable));
    ...
Clone this wiki locally