Skip to main content

class BiMultiMapBuilder<K,V,Tp,TpG>

undocumented

Implements: BiMultiMapBase.Builder<K,V,Tp>

Type parameters​

NameConstraintsDefaultDescription
Kundocumented
Vundocumented
TpContextTypesImplundocumented
TpGWithKeyValue<Tp, K, V>WithKeyValue<Tp, K, V>undocumented

Properties​

_keyValueMultiMap​

undocumented

Definition​

_keyValueMultiMap?: MultiMap.Builder<K, V>;

_lock​

undocumented

Definition​

_lock: number;

_valueKeyMultiMap​

undocumented

Definition​

_valueKeyMultiMap?: MultiMap.Builder<V, K>;

add​

undocumented

Definition​

add: (key: K, value: V) => boolean;

addEntries​

undocumented

Definition​

addEntries: (entries: StreamSource<readonly [K, V]>) => boolean;

build​

undocumented

Definition​

build: () => WithKeyValue<Tp, K, V>["normal"];

context​

undocumented

Definition​

readonly context: TpG['context'];

forEach​

undocumented

Definition​

forEach: (f: (entry: [K, V], index: number, halt: () => void) => void, options?: {
    state?: TraverseState;
  }) => void;

getKeys​

undocumented

Definition​

getKeys: <UV = V>(value: RelatedTo<V, UV>) => WithKeyValue<Tp, K, V>["valueMultiMapValues"];

getValues​

undocumented

Definition​

getValues: <UK = K>(key: RelatedTo<K, UK>) => WithKeyValue<Tp, K, V>["keyMultiMapValues"];

hasEntry​

undocumented

Definition​

hasEntry: <UK = K, UV = V>(key: RelatedTo<K, UK>, value: RelatedTo<V, UV>) => boolean;

hasKey​

undocumented

Definition​

hasKey: <UK = K>(key: RelatedTo<K, UK>) => boolean;

hasValue​

undocumented

Definition​

hasValue: <UV = V>(value: RelatedTo<V, UV>) => boolean;

isEmpty​

undocumented

Definition​

get isEmpty(): boolean;

Overrides​

Builder.isEmpty

keyValueMultiMap​

undocumented

Definition​

get keyValueMultiMap(): MultiMap.Builder<K, V>;

removeEntries​

undocumented

Definition​

removeEntries: <UK = K, UV = V>(entries: StreamSource<[RelatedTo<K, UK>, RelatedTo<V, UV>]>) => boolean;

removeEntry​

undocumented

Definition​

removeEntry: <UK = K, UV = V>(key: RelatedTo<K, UK>, value: RelatedTo<V, UV>) => boolean;

removeKey​

undocumented

Definition​

removeKey: <UK = K>(key: RelatedTo<K, UK>) => boolean;

removeKeys​

undocumented

Definition​

removeKeys: <UK = K>(keys: StreamSource<RelatedTo<K, UK>>) => boolean;

removeValue​

undocumented

Definition​

removeValue: <UV = V>(value: RelatedTo<V, UV>) => boolean;

removeValues​

undocumented

Definition​

removeValues: <UV = V>(values: StreamSource<RelatedTo<V, UV>>) => boolean;

setKeys​

undocumented

Definition​

setKeys: (value: V, keys: StreamSource<K>) => boolean;

setValues​

undocumented

Definition​

setValues: (key: K, values: StreamSource<V>) => boolean;

size​

undocumented

Definition​

get size(): number;

Overrides​

Builder.size

source​

undocumented

Definition​

source?: TpG["nonEmpty"] | undefined;

valueKeyMultiMap​

undocumented

Definition​

get valueKeyMultiMap(): MultiMap.Builder<V, K>;

Methods​

add​

Associates given key with given value in the builder.

Definition​

add(key: K, value: V): boolean;

Parameters​

NameTypeDescription
keyKthe entry key
valueV
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.set(1, 'a') // => false
m.set(1, 'b') // => true

Overrides​

Builder.add

addEntries​

Adds given entries to the builder.

Definition​

addEntries(entries: StreamSource<readonly [K, V]>): boolean;

Parameters​

NameTypeDescription
entriesStreamSource<readonly [K, V]>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.addEntries([1, 'a'], [3, 'c']]) // => true
m.addEntries([]) // => false

Overrides​

Builder.addEntries

build​

Returns an immutable collection instance containing the entries in this builder.

Definition​

build(): WithKeyValue<Tp, K, V>['normal'];

example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
const m2: HashBiMultiMap<number, string> = m.build()

Overrides​

Builder.build

checkLock​

undocumented

Definition​

checkLock(): void;

forEach​

Performs given function f for each entry of the builder.

Definition​

forEach(f: (entry: [K, V], index: number, halt: () => void) => void, options?: {
      state?: TraverseState;
    }): void;

Parameters​

NameTypeDescription
f(entry: [K, V], index: number, halt: () => void) => voidthe function to perform for each element, receiving:
- entry: the next key-value entry
- index: the index of the element
- halt: a function that, if called, ensures that no new elements are passed
options{
      state?: TraverseState;
    }
throws

RibuError.ModifiedBuilderWhileLoopingOverItError if the builder is modified while looping over it

example
HashBiMultiMap.of([1, 'a'], [2, 'b'], [3, 'c']).toBuilder().forEach((entry, i, halt) => {
console.log([entry[1], entry[0]]);
if (i >= 1) halt();
})
// => logs ['a', 1] ['b', 2]
note

O(N)

Overrides​

Builder.forEach

getKeys​

Returns a collection representing the keys currently associated with given value.

Definition​

getKeys<UV = V>(value: RelatedTo<V, UV>): WithKeyValue<Tp, K, V>['valueMultiMapValues'];

Type parameters​

NameDefaultDescription
UVV

Parameters​

NameTypeDescription
valueRelatedTo<V, UV>the value for which to find the keys
note

since it is unsafe to return the internal builder object, the result collection will be built upon each call to getKeys.

example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.getKeys('a').toArray() // => [1]
m.getKeys('z').toArray() // => []

Overrides​

Builder.getKeys

getValues​

Returns a collection representing the values currently associated with given key.

Definition​

getValues<UK = K>(key: RelatedTo<K, UK>): WithKeyValue<Tp, K, V>['keyMultiMapValues'];

Type parameters​

NameDefaultDescription
UKK

Parameters​

NameTypeDescription
keyRelatedTo<K, UK>the key for which to find the values
note

since it is unsafe to return the internal builder object, the result collection will be built upon each call to getValues.

example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.getValues(1).toArray() // => ['a']
m.getValues(3).toArray() // => []

Overrides​

Builder.getValues

hasEntry​

Returns true if the given key value entry is present in the builder.

Definition​

hasEntry<UK = K, UV = V>(key: RelatedTo<K, UK>, value: RelatedTo<V, UV>): boolean;

Type parameters​

NameDefaultDescription
UKK
UVV

Parameters​

NameTypeDescription
keyRelatedTo<K, UK>the key to look for
valueRelatedTo<V, UV>the value to look for
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.hasEntry(1, 'a') // => true
m.hasEntry(1, 'z') // => false

Overrides​

Builder.hasEntry

hasKey​

Returns true if the given key is present in the builder.

Definition​

hasKey<UK = K>(key: RelatedTo<K, UK>): boolean;

Type parameters​

NameDefaultDescription
UKK

Parameters​

NameTypeDescription
keyRelatedTo<K, UK>the key to look for
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.hasKey(2) // => true
m.hasKey(3) // => false

Overrides​

Builder.hasKey

hasValue​

Returns true if the given value is present in the builder.

Definition​

hasValue<UV = V>(value: RelatedTo<V, UV>): boolean;

Type parameters​

NameDefaultDescription
UVV

Parameters​

NameTypeDescription
valueRelatedTo<V, UV>the value to look for
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.hasValue('a') // => true
m.hasValue('z') // => false

Overrides​

Builder.hasValue

removeEntries​

Removes the entries in the given entries StreamSource from the builder.

Definition​

removeEntries<UK = K, UV = V>(entries: StreamSource<[RelatedTo<K, UK>, RelatedTo<V, UV>]>): boolean;

Type parameters​

NameDefaultDescription
UKK
UVV

Parameters​

NameTypeDescription
entriesStreamSource<[RelatedTo<K, UK>, RelatedTo<V, UV>]>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeEntries([[1, 'c'], ['2', 'a']]) // => false
m.removeEntries([[1, 'a']]) // => true

Overrides​

Builder.removeEntries

removeEntry​

Removes the entry of given key and value from the builder.

Definition​

removeEntry<UK = K, UV = V>(key: RelatedTo<K, UK>, value: RelatedTo<V, UV>): boolean;

Type parameters​

NameDefaultDescription
UKK
UVV

Parameters​

NameTypeDescription
keyRelatedTo<K, UK>the entry key
valueRelatedTo<V, UV>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeEntry(1, 'c') // => false
m.removeEntry(1, 'a') // => true

Overrides​

Builder.removeEntry

removeKey​

Removes the entries related to given key from the builder.

Definition​

removeKey<UK = K>(key: RelatedTo<K, UK>): boolean;

Type parameters​

NameDefaultDescription
UKK

Parameters​

NameTypeDescription
keyRelatedTo<K, UK>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeKey(2) // => true
m.removeKey(3) // => false

Overrides​

Builder.removeKey

removeKeys​

Removes the entries related to the given keys StreamSource from the builder.

Definition​

removeKeys<UK = K>(keys: StreamSource<RelatedTo<K, UK>>): boolean;

Type parameters​

NameDefaultDescription
UKK

Parameters​

NameTypeDescription
keysStreamSource<RelatedTo<K, UK>>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeKeys([3, 4, 5]) // => false
m.removeKeys([1, 10]) // => true

Overrides​

Builder.removeKeys

removeValue​

Removes the entries related to given value from the builder.

Definition​

removeValue<UV = V>(value: RelatedTo<V, UV>): boolean;

Type parameters​

NameDefaultDescription
UVV

Parameters​

NameTypeDescription
valueRelatedTo<V, UV>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeValue('b') // => true
m.removeValue('c') // => false

Overrides​

Builder.removeValue

removeValues​

Removes the entries related to the given values StreamSource from the builder.

Definition​

removeValues<UV = V>(values: StreamSource<RelatedTo<V, UV>>): boolean;

Type parameters​

NameDefaultDescription
UVV

Parameters​

NameTypeDescription
valuesStreamSource<RelatedTo<V, UV>>
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.removeValues(['c', 'd', 'e']) // => false
m.removeValues(['a', 'e']) // => true

Overrides​

Builder.removeValues

setKeys​

Sets the keys associated to given value to the keys in the given keys StreamSource.

Definition​

setKeys(value: V, keys: StreamSource<K>): boolean;

Parameters​

NameTypeDescription
valueVthe value to which to associate the keys
keysStreamSource<K>a StreamSource containing the keys to associate to the value
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.setKeys('a', [3, 4]).getKeys('a').toArray() // => [3, 4]

Overrides​

Builder.setKeys

setValues​

Sets the values associated to given key to the values in the given values StreamSource.

Definition​

setValues(key: K, values: StreamSource<V>): boolean;

Parameters​

NameTypeDescription
keyKthe key to which to associate the values
valuesStreamSource<V>a StreamSource containing the values to associate to the key
example
const m = HashBiMultiMap.of([1, 'a'], [2, 'b']).toBuilder()
m.setValues(1, ['b', 'c']).getValues(1).toArray() // => ['b', 'c']

Overrides​

Builder.setValues