public function deserialize(Property $property, $group, $inputExpression)
 {
     return StatementAndExpressionVO::withStatementAndExpression("if ({$inputExpression} instanceof \\DateTime) {\n" . "\t\$datetimeInstanceReturn = {$inputExpression};\n" . "} elseif (is_numeric({$inputExpression})) {\n" . "\t\$datetimeInstanceReturn = new \\DateTime('@' . intval({$inputExpression}));\n" . "} elseif (is_string({$inputExpression})) {\n" . "\tif ({$inputExpression} === '0000-00-00 00:00:00') {\n" . "\t\t\$datetimeInstanceReturn = null;\n" . "\t} else {\n" . "\t\t\$datetimeInstanceReturn = \\DateTime::createFromFormat(" . var_export($this->format, true) . ", {$inputExpression});\n" . "\t}\n" . "} elseif (is_array({$inputExpression}) && isset({$inputExpression}['date'])) {\n" . "\t\$datetimeInstanceReturn = new \\DateTime({$inputExpression}['date']);\n" . "} elseif ({$inputExpression} === null) {\n" . "\t\$datetimeInstanceReturn = null;\n" . "} else {\n" . "\tthrow new \\InvalidArgumentException('Could not deserialize date of format ' . " . var_export($this->format, true) . " . '.');\n" . "}", "\$datetimeInstanceReturn");
 }