public function normaliseValueToType($value, string $expectedType)
    {
        if (null === $value) {
            return null;
        }
        switch ($expectedType) {
            case 'string':
                return $this->normaliseString($value);
            case 'bool':
                return $this->normaliseBool($value);
            case 'int':
                return $this->normaliseInt($value);
            case 'float':
                return $this->normaliseFloat($value);
            case MappingHelper::PHP_TYPE_DATETIME:
                return $this->normaliseDateTime($value);
            default:
                throw new \RuntimeException('hit unexpected type ' . $expectedType . ' in ' . __METHOD__);
        }
    }