public static function init()

in src/Apache/Ignite/Internal/Binary/TypeInfo.php [40:249]


    public static function init(): void
    {
        TypeInfo::$info = array(
            ObjectType::BYTE => new TypeInfo([
                TypeInfo::NAME => 'byte',
                TypeInfo::SIZE => 1,
                TypeInfo::MIN_VALUE => -128,
                TypeInfo::MAX_VALUE => 127,
                TypeInfo::MAX_UNSIGNED_VALUE => 0x100,
            ]),
            ObjectType::SHORT => new TypeInfo([
                TypeInfo::NAME => 'short',
                TypeInfo::SIZE => 2,
                TypeInfo::MIN_VALUE => -32768,
                TypeInfo::MAX_VALUE => 32767,
                TypeInfo::MAX_UNSIGNED_VALUE => 0x10000,
            ]),
            ObjectType::INTEGER => new TypeInfo([
                TypeInfo::NAME => 'integer',
                TypeInfo::SIZE => 4,
                TypeInfo::MIN_VALUE => -2147483648,
                TypeInfo::MAX_VALUE => TypeInfo::MAX_INT_VALUE,
            ]),
            ObjectType::LONG => new TypeInfo([
                TypeInfo::NAME => 'long',
                TypeInfo::SIZE => 8,
            ]),
            ObjectType::FLOAT => new TypeInfo([
                TypeInfo::NAME => 'float',
                TypeInfo::SIZE => 4,
            ]),
            ObjectType::DOUBLE => new TypeInfo([
                TypeInfo::NAME => 'double',
                TypeInfo::SIZE => 8,
            ]),
            ObjectType::CHAR => new TypeInfo([
                TypeInfo::NAME => 'char',
                TypeInfo::SIZE => 2,
            ]),
            ObjectType::BOOLEAN => new TypeInfo([
                TypeInfo::NAME => 'boolean',
                TypeInfo::SIZE => 1,
            ]),
            ObjectType::STRING => new TypeInfo([
                TypeInfo::NAME => 'string',
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::UUID => new TypeInfo([
                TypeInfo::NAME => 'UUID',
                TypeInfo::SIZE => 16,
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::DATE => new TypeInfo([
                TypeInfo::NAME => 'date',
                TypeInfo::SIZE => 8,
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::BYTE_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'byte array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::BYTE
            ]),
            ObjectType::SHORT_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'short array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::SHORT
            ]),
            ObjectType::INTEGER_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'integer array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::INTEGER
            ]),
            ObjectType::LONG_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'long array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::LONG
            ]),
            ObjectType::FLOAT_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'float array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::FLOAT
            ]),
            ObjectType::DOUBLE_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'double array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::DOUBLE
            ]),
            ObjectType::CHAR_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'char array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::CHAR
            ]),
            ObjectType::BOOLEAN_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'boolean array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::BOOLEAN
            ]),
            ObjectType::STRING_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'string array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::STRING,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::UUID_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'UUID array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::UUID,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::DATE_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'date array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::DATE,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::OBJECT_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'object array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::COMPLEX_OBJECT,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::COLLECTION => new TypeInfo([
                TypeInfo::NAME => 'collection',
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::MAP => new TypeInfo([
                TypeInfo::NAME => 'map',
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::ENUM => new TypeInfo([
                TypeInfo::NAME => 'enum',
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::ENUM_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'enum array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::ENUM,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::DECIMAL => new TypeInfo([
                TypeInfo::NAME => 'decimal',
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::DECIMAL_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'decimal array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::DECIMAL,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::TIMESTAMP => new TypeInfo([
                TypeInfo::NAME => 'timestamp',
                TypeInfo::SIZE => 12,
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::TIMESTAMP_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'timestamp array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::TIMESTAMP,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::TIME => new TypeInfo([
                TypeInfo::NAME => 'time',
                TypeInfo::SIZE => 8,
                TypeInfo::NULLABLE => true,
            ]),
            ObjectType::TIME_ARRAY => new TypeInfo([
                TypeInfo::NAME => 'time array',
                TypeInfo::NULLABLE => true,
                TypeInfo::ELEMENT_TYPE_CODE => ObjectType::TIME,
                TypeInfo::KEEP_ELEMENT_TYPE => true
            ]),
            ObjectType::NULL => new TypeInfo([
                TypeInfo::NAME => 'null',
                TypeInfo::NULLABLE => true,
            ])
        );
        
        TypeInfo::$primitiveTypes = [
            ObjectType::BYTE,
            ObjectType::SHORT,
            ObjectType::INTEGER,
            ObjectType::LONG,
            ObjectType::FLOAT,
            ObjectType::DOUBLE,
            ObjectType::CHAR,
            ObjectType::BOOLEAN,
            ObjectType::STRING,
            ObjectType::UUID,
            ObjectType::DATE,
            ObjectType::BYTE_ARRAY,
            ObjectType::SHORT_ARRAY,
            ObjectType::INTEGER_ARRAY,
            ObjectType::LONG_ARRAY,
            ObjectType::FLOAT_ARRAY,
            ObjectType::DOUBLE_ARRAY,
            ObjectType::CHAR_ARRAY,
            ObjectType::BOOLEAN_ARRAY,
            ObjectType::STRING_ARRAY,
            ObjectType::UUID_ARRAY,
            ObjectType::DATE_ARRAY,
            ObjectType::ENUM,
            ObjectType::ENUM_ARRAY,
            ObjectType::DECIMAL,
            ObjectType::DECIMAL_ARRAY,
            ObjectType::TIMESTAMP,
            ObjectType::TIMESTAMP_ARRAY,
            ObjectType::TIME,
            ObjectType::TIME_ARRAY
        ];
    }