{"version":3,"sources":["vector/row.ts"],"names":[],"mappings":"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","file":"row.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Vector } from '../vector';\nimport { StructVector } from './struct';\nimport { valueToString } from '../util/pretty';\nimport { DataType, Struct, RowLike } from '../type';\n\n/** @ignore */ const kParent = Symbol.for('parent');\n/** @ignore */ const kRowIndex = Symbol.for('rowIndex');\n/** @ignore */ const kKeyToIdx = Symbol.for('keyToIdx');\n/** @ignore */ const kIdxToVal = Symbol.for('idxToVal');\n/** @ignore */ const kCustomInspect = Symbol.for('nodejs.util.inspect.custom');\n\nabstract class Row<K extends PropertyKey = any, V = any> implements Map<K, V> {\n\n    public readonly size: number;\n    public readonly [Symbol.toStringTag]: string;\n\n    protected [kRowIndex]: number;\n    protected [kParent]: Vector<Struct>;\n    protected [kKeyToIdx]: Map<K, number>;\n    protected [kIdxToVal]: V[];\n\n    constructor(parent: Vector<Struct>, numKeys: number) {\n        this[kParent] = parent;\n        this.size = numKeys;\n    }\n\n    public abstract keys(): IterableIterator<K>;\n    public abstract values(): IterableIterator<V>;\n    public abstract getKey(idx: number): K;\n    public abstract getIndex(key: K): number;\n    public abstract getValue(idx: number): V;\n    public abstract setValue(idx: number, val: V): void;\n\n    public entries() { return this[Symbol.iterator](); }\n\n    public has(key: K) { return this.get(key) !== undefined; }\n\n    public get(key: K) {\n        let val = undefined;\n        if (key !== null && key !== undefined) {\n            const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n            let idx = ktoi.get(key);\n            if (idx !== undefined) {\n                const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n                ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n            } else if ((idx = this.getIndex(key)) > -1) {\n                ktoi.set(key, idx);\n                const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n                ((val = itov[idx]) !== undefined) || (itov[idx] = val = this.getValue(idx));\n            }\n        }\n        return val;\n    }\n\n    public set(key: K, val: V) {\n        if (key !== null && key !== undefined) {\n            const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n            let idx = ktoi.get(key);\n            if (idx === undefined) {\n                ktoi.set(key, idx = this.getIndex(key));\n            }\n            if (idx > -1) {\n                const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n                itov[idx] = <any> this.setValue(idx, val);\n            }\n        }\n        return this;\n    }\n\n    public clear(): void { throw new Error(`Clearing ${this[Symbol.toStringTag]} not supported.`); }\n\n    public delete(_: K): boolean { throw new Error(`Deleting ${this[Symbol.toStringTag]} values not supported.`); }\n\n    public *[Symbol.iterator](): IterableIterator<[K, V]> {\n\n        const ki = this.keys();\n        const vi = this.values();\n        const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n        const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n        for (let k: K, v: V, i = 0, kr: IteratorResult<K>, vr: IteratorResult<V>;\n            !((kr = ki.next()).done || (vr = vi.next()).done);\n            ++i\n        ) {\n            k = kr.value;\n            v = vr.value;\n            itov[i] = v;\n            ktoi.has(k) || ktoi.set(k, i);\n            yield [k, v];\n        }\n    }\n\n    public forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void {\n\n        const ki = this.keys();\n        const vi = this.values();\n        const callback = thisArg === undefined ? callbackfn :\n            (v: V, k: K, m: Map<K, V>) => callbackfn.call(thisArg, v, k, m);\n        const ktoi = this[kKeyToIdx] || (this[kKeyToIdx] = new Map());\n        const itov = this[kIdxToVal] || (this[kIdxToVal] = new Array(this.size));\n\n        for (let k: K, v: V, i = 0, kr: IteratorResult<K>, vr: IteratorResult<V>;\n            !((kr = ki.next()).done || (vr = vi.next()).done);\n            ++i\n        ) {\n            k = kr.value;\n            v = vr.value;\n            itov[i] = v;\n            ktoi.has(k) || ktoi.set(k, i);\n            callback(v, k, this);\n        }\n    }\n\n    public toArray() { return [...this.values()]; }\n    public toJSON() {\n        const obj = {} as any;\n        this.forEach((val, key) => obj[key] = val);\n        return obj;\n    }\n\n    public inspect() { return this.toString(); }\n    public [kCustomInspect]() { return this.toString(); }\n    public toString() {\n        const str: string[] = [];\n        this.forEach((val, key) => {\n            key = valueToString(key);\n            val = valueToString(val);\n            str.push(`${key}: ${val}`);\n        });\n        return `{ ${str.join(', ')} }`;\n    }\n\n    protected static [Symbol.toStringTag] = ((proto: Row) => {\n        Object.defineProperties(proto, {\n            'size': { writable: true, enumerable: false, configurable: false, value: 0 },\n            [kParent]: { writable: true, enumerable: false, configurable: false, value: null },\n            [kRowIndex]: { writable: true, enumerable: false, configurable: false, value: -1 },\n        });\n        return (proto as any)[Symbol.toStringTag] = 'Row';\n    })(Row.prototype);\n}\n\nexport class MapRow<K extends DataType = any, V extends DataType = any> extends Row<K['TValue'], V['TValue'] | null> {\n    constructor(slice: Vector<Struct<{ key: K, value: V }>>) {\n        super(slice, slice.length);\n        return createRowProxy(this);\n    }\n    public keys() {\n        return this[kParent].getChildAt(0)![Symbol.iterator]();\n    }\n    public values() {\n        return this[kParent].getChildAt(1)![Symbol.iterator]();\n    }\n    public getKey(idx: number): K['TValue'] {\n        return this[kParent].getChildAt(0)!.get(idx);\n    }\n    public getIndex(key: K['TValue']): number {\n        return this[kParent].getChildAt(0)!.indexOf(key);\n    }\n    public getValue(index: number): V['TValue'] | null {\n        return this[kParent].getChildAt(1)!.get(index);\n    }\n    public setValue(index: number, value: V['TValue'] | null): void {\n        this[kParent].getChildAt(1)!.set(index, value);\n    }\n}\n\nexport class StructRow<T extends { [key: string]: DataType } = any> extends Row<keyof T, T[keyof T]['TValue'] | null> {\n    constructor(parent: StructVector<T>) {\n        super(parent, parent.type.children.length);\n        return defineRowProxyProperties(this);\n    }\n    public *keys() {\n        for (const field of this[kParent].type.children) {\n            yield field.name as keyof T;\n        }\n    }\n    public *values() {\n        for (const field of this[kParent].type.children) {\n            yield (this as RowLike<T>)[field.name];\n        }\n    }\n    public getKey(idx: number): keyof T {\n        return this[kParent].type.children[idx].name as keyof T;\n    }\n    public getIndex(key: keyof T): number {\n        return this[kParent].type.children.findIndex((f) => f.name === key);\n    }\n    public getValue(index: number): T[keyof T]['TValue'] | null {\n        return this[kParent].getChildAt(index)!.get(this[kRowIndex]);\n    }\n    public setValue(index: number, value: T[keyof T]['TValue'] | null): void {\n        return this[kParent].getChildAt(index)!.set(this[kRowIndex], value);\n    }\n}\n\nObject.setPrototypeOf(Row.prototype, Map.prototype);\n\n/** @ignore */\nconst defineRowProxyProperties = (() => {\n    const desc = { enumerable: true, configurable: false, get: null as any, set: null as any };\n    return <T extends Row>(row: T) => {\n        let idx = -1, ktoi = row[kKeyToIdx] || (row[kKeyToIdx] = new Map());\n        const getter = (key: any) => function(this: T) { return this.get(key); };\n        const setter = (key: any) => function(this: T, val: any) { return this.set(key, val); };\n        for (const key of row.keys()) {\n            ktoi.set(key, ++idx);\n            desc.get = getter(key);\n            desc.set = setter(key);\n            row.hasOwnProperty(key) || (desc.enumerable = true, Object.defineProperty(row, key, desc));\n            row.hasOwnProperty(idx) || (desc.enumerable = false, Object.defineProperty(row, idx, desc));\n        }\n        desc.get = desc.set = null;\n        return row;\n    };\n})();\n\n/** @ignore */\nconst createRowProxy = (() => {\n    if (typeof Proxy === 'undefined') {\n        return defineRowProxyProperties;\n    }\n    const has = Row.prototype.has;\n    const get = Row.prototype.get;\n    const set = Row.prototype.set;\n    const getKey = Row.prototype.getKey;\n    const RowProxyHandler: ProxyHandler<Row> = {\n        isExtensible() { return false; },\n        deleteProperty() { return false; },\n        preventExtensions() { return true; },\n        ownKeys(row: Row) { return [...row.keys()].map((x) => `${x}`); },\n        has(row: Row, key: PropertyKey) {\n            switch (key) {\n                case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n                case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n                case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n                case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n                case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n                    return true;\n            }\n            if (typeof key === 'number' && !row.has(key)) {\n                key = row.getKey(key);\n            }\n            return row.has(key);\n        },\n        get(row: Row, key: PropertyKey, receiver: any) {\n            switch (key) {\n                case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n                case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n                case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n                case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n                case Symbol.iterator: case Symbol.toStringTag: case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx: case kCustomInspect:\n                    return Reflect.get(row, key, receiver);\n            }\n            if (typeof key === 'number' && !has.call(receiver, key)) {\n                key = getKey.call(receiver, key);\n            }\n            return get.call(receiver, key);\n        },\n        set(row: Row, key: PropertyKey, val: any, receiver: any) {\n            switch (key) {\n                case kParent: case kRowIndex: case kIdxToVal: case kKeyToIdx:\n                    return Reflect.set(row, key, val, receiver);\n                case 'getKey': case 'getIndex': case 'getValue': case 'setValue': case 'toArray': case 'toJSON': case 'inspect':\n                case 'constructor': case 'isPrototypeOf': case 'propertyIsEnumerable': case 'toString': case 'toLocaleString': case 'valueOf':\n                case 'size': case 'has': case 'get': case 'set': case 'clear': case 'delete': case 'keys': case 'values': case 'entries': case 'forEach':\n                case '__proto__': case '__defineGetter__': case '__defineSetter__': case 'hasOwnProperty': case '__lookupGetter__': case '__lookupSetter__':\n                case Symbol.iterator: case Symbol.toStringTag:\n                    return false;\n            }\n            if (typeof key === 'number' && !has.call(receiver, key)) {\n                key = getKey.call(receiver, key);\n            }\n            return has.call(receiver, key) ? !!set.call(receiver, key, val) : false;\n        },\n    };\n    return <T extends Row>(row: T) => new Proxy(row, RowProxyHandler) as T;\n})();\n"]}