Mercurial > code > home > repos > streamed-graph
diff src/layout/rdf_value.ts @ 114:4b33a479dc2f
fix layout test to match new layout return types. clean up UriPairMap
author | drewp@bigasterisk.com |
---|---|
date | Sat, 19 Mar 2022 16:12:49 -0700 |
parents | cbcd82d21356 |
children |
line wrap: on
line diff
--- a/src/layout/rdf_value.ts Sat Mar 19 15:45:03 2022 -0700 +++ b/src/layout/rdf_value.ts Sat Mar 19 16:12:49 2022 -0700 @@ -61,3 +61,33 @@ }); return uniques; } + +// A default dict of Term[] with (NamedNode,NamedNode) pairs as keys. +// +// Immutable.Map<Immutable.Record<Uri,Uri>, Immutable.Set<Term>>() didn't seem to work. +export class UriPairMap { + _d = new Map<string, Term[]>(); + + _key(k1: NamedNode, k2: NamedNode): string { + return k1.id + "|" + k2.id; + } + + add(k1: NamedNode, k2: NamedNode, v: Term) { + const key = this._key(k1, k2); + let cur = this._d.get(key); + if (cur === undefined) { + cur = []; + this._d.set(key, cur); + } + cur.push(v); + } + + get(k1: NamedNode, k2: NamedNode): Term[] { + const key = this._key(k1, k2); + const v = this._d.get(key); + if (v === undefined) { + return []; + } + return v; + } +}