Type coercion

This document describes how Boost.space Integrator 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, Boost.space Integrator 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, Boost.space Integrator will try to convert the received value to the requested codepage. If this conversion is not supported, Boost.space Integrator 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 Boost.space Integrator returns a validation error.

When Collection is expected:

 

Received Description
collection The value is handed over unchanged.
other Boost.space Integrator returns a validation error.

When Date is expected:

 

Received Description
date The value is handed over unchanged.
text Boost.space Integrator 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 Boost.space Integrator will treat the number as milliseconds since Jan 01 1970 (UTC) and convert it to a corresponding date.
other Boost.space Integrator returns a validation error.

When Number is expected:

 

Received Description
number The value is handed over unchanged.
text Boost.space Integrator will try to convert the text to a number. If the conversion fails, it will return a validation error.
other Boost.space Integrator 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, Boost.space Integrator 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, Boost.space Integrator will return a validation error
date The value is converted to ISO 8601 text.
number The value is converted to text.
other Boost.space Integrator returns a validation error.

When Time is expected:

 

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