UNPKG

lincd

Version:

LINCD is a JavaScript library for building user interfaces with linked data (also known as 'structured data', or RDF)

103 lines 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuadSet = void 0; const CoreSet_1 = require("./CoreSet"); const NodeSet_1 = require("./NodeSet"); class QuadSet extends CoreSet_1.CoreSet { removeAll(alteration = false) { this.forEach((quad) => quad.remove(alteration)); } moveTo(graph, alteration = true) { let newSet = new QuadSet(); this.forEach((quad) => { newSet.add(quad.moveToGraph(graph, alteration)); }); return newSet; } makeExplicit() { this.forEach((quad) => quad.makeExplicit()); } getSubjects() { //return new NamedNodeSet(this.map(quad => quad.subject).values()); //that's short, but probably this is faster: var res = new NodeSet_1.NodeSet(); for (var quad of this) { res.add(quad.subject); } return res; } getPredicates() { var res = new NodeSet_1.NodeSet(); for (var quad of this) { res.add(quad.predicate); } return res; } getObjects() { var res = new NodeSet_1.NodeSet(); for (var quad of this) { res.add(quad.object); } return res; } getNamedNodeObjects() { var res = new NodeSet_1.NodeSet(); for (var quad of this) { //using instanceof NamedNode here will cause circular references if ('uri' in quad.object) { res.add(quad.object); } } return res; } getLiteralObjects() { var res = new NodeSet_1.NodeSet(); for (var quad of this) { //using instanceof Literal here will cause circular references if (!('uri' in quad.object)) { res.add(quad.object); } } return res; } getLike(subject, predicate, object) { return this.filter((quad) => { return ((!subject || quad.subject === subject) && (!predicate || quad.predicate === predicate) && (!object || quad.object === object)); }); } getNamedNodes() { return new NodeSet_1.NodeSet() .concat(this.getSubjects()) .concat(this.getPredicates()) .concat(this.getNamedNodeObjects()); } getNodes() { return new NodeSet_1.NodeSet().concat(this.getSubjects()).concat(this.getPredicates()).concat(this.getObjects()); } hasNode(node) { return this.some((quad) => { return quad.subject === node || quad.predicate === node || quad.object === node; }); } getExplicit() { return this.filter((quad) => !quad.implicit); } getImplicit() { return this.filter((quad) => quad.implicit); } turnOn() { return this.forEach((t) => t.turnOn()); } turnOff() { return this.forEach((t) => t.turnOff()); } toString() { var str = ''; this.forEach((item) => (str += '\t' + item.toString() + '\n')); return 'QuadSet(' + this.size + ') [\n' + str + ']'; } } exports.QuadSet = QuadSet; //# sourceMappingURL=QuadSet.js.map