/**
* Assign a type-casted value to the data object
*
* Fields of unknown types will not be added to the object.
*
* @param \stdClass $data
* @param Column $column
* @param mixed $value
*/
private function assignValue(\stdClass $data, Column $column, $value)
{
$field_name = $column->getName();
switch ($column->getType()) {
default:
break;
case FieldType::DATETIME():
$data->{$field_name} = $this->serialiseDateTime($value);
break;
case FieldType::INT():
$data->{$field_name} = (int) $value;
break;
case FieldType::STRING():
$data->{$field_name} = (string) $value;
break;
case FieldType::DECIMAL():
$data->{$field_name} = (double) $value;
break;
case FieldType::BOOL():
$data->{$field_name} = (bool) $value;
break;
case FieldType::SET():
$data->{$field_name} = json_encode($value);
break;
case FieldType::OBJECT():
$data->{$field_name} = $this->serialiseObject($value);
break;
}
}