Логические функции и функции условий
ESB поддерживает функции условий Simple — небольшие функции, которые в основном имеют на выходе boolean значение.
| Функция | Тип ответа | Описание |
|---|---|---|
assert(exp,msg) | null | Вычисляет выражение и выбрасывает исключение SimpleAssertionException с сообщением, если условие ложно. |
contains(text) | boolean | Возвращает true, если тело сообщения содержит часть текста (без учета регистра).Функция удобна для проверки, содержит ли данное выражение частично заданный текст (без учета регистра). Например, если тело сообщения — Hello big World, то ${contains(world)} возвращает true, а ${contains(center)} возвращает false. |
contains(exp,text) | boolean | Возвращает true, если выражение содержит часть текста (без учета регистра). |
iif(predicate,trueExp,falseExp) | Object | Встроенная функция iif вычисляет выражение предиката и возвращает значение trueExp, если предикат истинен, в противном случае возвращается значение falseExp.Функция iif доступна в качестве тернарного оператора (predicate ? trueExp : falseExp). Пример с iif может быть таким: ${iif(${header.foo} > 0,'positive','negative')}. Этот пример также используется ниже с тернарным оператором. Вместо возврата фиксированной строки в качестве ответа вы также можете использовать такие функции, как: ${iif(${header.foo} > 0,${body},${null})}. |
isEmpty | boolean | Определяет является ли тело сообщения null или пустым (для типов list/map проверяется, имеют ли они 0 элементов).Проверяет является ли значение null, пустой строкой, пустым списком/картой/массивом. Для любых других значений возвращается false. |
isEmpty(exp) | boolean | Определяет является ли выражение null или пустым (для типов list/map проверяется, имеют ли они 0 элементов). |
isAlpha() | boolean | Определяет является ли тело сообщения буквенным значением (A..Z). Внутри будет использованы метод JDK Character.isLetter. Функция ${isAlpha('Hello World') вернет false, потому что там есть пробел. Однако ${isAlpha('HelloWorld')} вернет true. |
isAlpha(exp) | boolean | Определяет является ли выражение буквенным значением (A..Z). Внутри будет использованы метод JDK Character.isLetter. |
isAlphaNumeric() | boolean | Определяет является ли тело сообщения буквенно-цифровым значением (A..Z0-9). Внутри будет использован метод Character.isLetterOrDigit. |
isAlphaNumeric(exp) | boolean | Определяет является ли выражение буквенно-цифровым значением (A..Z0-9). Внутри будет использован метод Character.isLetterOrDigit. |
isNumeric() | boolean | Определяет является ли тело сообщения числовым значением (0..9). Внутри будет использован метод JDK Character.isDigit. |
isNumeric(exp) | boolean | Определяет является ли выражение числовым значением (0..9). Внутри будет использован метод JDK Character.isDigit. |
not(predicate) | boolean | Вычисляет предикат и возвращает инвертированное логическое значение значение. |