Skip to content

Type coercion

This document describes how Ibexa Connect behaves in situations when it receives values in expected and unexpected data formats.

When array is expected:

Received Description
array The value is handed over unchanged.
other If the received value is not of the array type, Ibexa Connect will create an array and the first (and the only) element will be the received value.

When Boolean is expected:

Received Description
boolean The value is handed over unchanged.
number The value is converted to logical Yes, even if the value is 0
text If the value is equal to false or the value is empty, it is converted to logical No. If not, it is converted to logical Yes
other The value is converted to logical Yes whenever the received value exists (is not null).

When Buffer is expected:

Received Description
buffer The value is handed over unchanged only if the codepage is as expected. If the codepage differs, Ibexa Connect will try to convert the received value to the requested codepage. If this conversion is not supported, Ibexa Connect will return a validation error.
boolean The value is converted to text (true/false) and then to binary data following the steps mentioned above for converting to text.
date The value is converted to ISO 8601 text and then to binary data following the steps mentioned for converting to text.
number The value is converted to text and then to binary data following the steps mentioned above for converting to text.
text The value is converted to binary data and encoded as expected. If the expected encoding is not specified, utf8 encoding will be used.
other Ibexa Connect returns a validation error.

When Collection is expected:

Received Description
collection The value is handed over unchanged.
other Ibexa Connect returns a validation error.

When Date is expected:

Received Description
date The value is handed over unchanged.
text Ibexa Connect will try to convert the text to a date. If the conversion fails, it will return a validation error. Date must contain day, month and year. Date may contain time and time zone. Default time zone is based on your settings. See these examples.
number Ibexa Connect will treat the number as milliseconds since Jan 01 1970 (UTC) and convert it to a corresponding date.
other Ibexa Connect returns a validation error.

When Number is expected:

Received Description
number The value is handed over unchanged.
text Ibexa Connect will try to convert the text to a number. If the conversion fails, it will return a validation error.
other Ibexa Connect returns a validation error.

When Text is expected:

Received Description
text The value is handed over unchanged.
array If the given array supports conversion to text, the value will be converted. If not, Ibexa Connect will return a validation error.
boolean The value is converted to text (true/false).
buffer If text encoding is specified for binary data, the value will be converted to text. If not, Ibexa Connect will return a validation error
date The value is converted to ISO 8601 text.
number The value is converted to text.
other Ibexa Connect returns a validation error.

When Time is expected:

Received Description
time The value is handed over unchanged.
text Ibexa Connect will try to convert time to the hours:minutes:seconds format. If the conversion fails, it will return a validation error.
other Ibexa Connect returns a validation error.