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.