Проверка изменённого или пустого значения поля.
Служебными словами для проверки изменённого или пустого значения поля являются «изменено» и «пустое» соответственно. Следующее слово после служебного будет определено как названия поля объекта. Важно, чтобы название поля являлось одним словом (т.е. без пробелов) и соответствовало имени атрибута объекта в базе данных.
Пример: изменено number
пустое street_name
изменено full address – ошибка
Проверка наличия изменённых полей кроме заданного.
Конструкция проверки наличия изменённых полей кроме заданного состоит из служебного словосочетания «изменено кроме» и названия атрибута объекта. Разделение оператора и имени поля также осуществляется с помощью пробела.
Пример: изменено кроме graphics
изменено_кроме street_name – ошибка
Проверка наличия приложенного файла.
Проверка наличия приложенного файла описывается служебной конструкцией «приложен файл». Эта конструкция является условием, дополнительные параметры и операторы сравнения не требуются.
Пример: Приложен файл
приложенФайл – ошибка
Сравнение значений полей.
Конструкция сравнения значений полей состоит из трёх частей: наименование поля, оператор сравнения, сравниваемое значение. Все три части, как и в предыдущих случаях, должны быть отделены друг от друга пробелами, а значение должно быть заключено в кавычки. Доступные операторы сравнения:
= - равно
<> - не равно
> - больше
< - меньше
>= больше или равно
<= - меньше или равно
Пример: number <> “20”
street_name = “ул. Арбат”
full_number = 10/17 – ошибка
Примечание: При описании правил запрещено использовать символы «~» и «|», так как они являются служебными и требуются для разбора строки правил.
Описание правил.
При описании правил используются логические операторы «и», «или», отрицание «не», а также скобки для установки порядка вычисления выражения. Операторы могут стоять соединять как простые условия, так и целые логические выражения, заключённые в скобки. Отрицание также может стоять перед условием или выражением в скобках.
При вычислении логического выражения сначала вычисляется отрицание («не»), затем конъюнкция («и»), и последней – дизъюнкция («или»). Порядок действий вычисляется слева направо.
В выражении «изменено graphics или version = “2” и операция <> удаление» будет следующий порядок действий:
version = “2” и операция <> удаление = результат
изменено graphics или результат = конечный_результат
Если в это выражение добавить скобки: «(изменено graphics или version = “2”) и операция <> удаление», порядок действий изменится:
изменено graphics или version = “2” = результат
результат и операция <> удаление = конечный_результат
Далее следуют несколько примеров описания правил:
не пустое structure или full_number = “20а”
(изменено graphics или version = “2”) и операция <> удаление
(Приложен файл и version > 1) не пустое number – ошибка (между закрывающей скобкой и отрицанием должен стоять оператор)
И операция = удаление и не приложен файл – ошибка (логический оператор «и» не может стоять в начале выражения)
Do'stlaringiz bilan baham: |