public static function getNameByType($type)
    {
        static $map = array(
            self::TYPE_BOOL => 'Bool',
            self::TYPE_INT => 'Int',
            self::TYPE_UINT => 'UInt',
            self::TYPE_QCHAR => 'QChar',
            self::TYPE_QVARIANT_MAP => 'QVariantMap',
            self::TYPE_QVARIANT_LIST => 'QVariantList',
            self::TYPE_QSTRING => 'QString',
            self::TYPE_QSTRING_LIST => 'QStringList',
            self::TYPE_QBYTE_ARRAY => 'QByteArray',
            self::TYPE_QTIME => 'QTime',
            self::TYPE_QDATETIME => 'QDateTime',
            self::TYPE_QUSER_TYPE => 'QUserType',
            self::TYPE_SHORT => 'Short',
            self::TYPE_CHAR => 'Char',
            self::TYPE_USHORT => 'UShort',
            self::TYPE_UCHAR => 'UChar',
        );

        if (!isset($map[$type])) {
            throw new \InvalidArgumentException('Invalid/unknown variant type (' . $type . ')');
        }

        return $map[$type];
    }