protected function generateValue(\XmlWriter $writer, $value, $key = null, $elementName = 'value')
{
switch ($hashValueType = gettype($value)) {
case 'NULL':
$this->generateNullValue($writer, $key, $elementName);
break;
case 'boolean':
$this->generateBooleanValue($writer, $value, $key, $elementName);
break;
case 'integer':
$this->generateIntegerValue($writer, $value, $key, $elementName);
break;
case 'double':
$this->generateFloatValue($writer, $value, $key, $elementName);
break;
case 'string':
$this->generateStringValue($writer, $value, $key, $elementName);
break;
case 'array':
$this->generateArrayValue($writer, $value, $key, $elementName);
break;
default:
throw new \Exception('Invalid type in field value hash: ' . $hashValueType);
}
}