lincd
Version:
LINCD is a JavaScript library for building user interfaces with linked data (also known as 'structured data', or RDF)
67 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuadArray = void 0;
const NodeSet_js_1 = require("./NodeSet.js");
//TODO: test performance of QuadArray vs QuadSet and probably remove QuadArray
class QuadArray extends Array {
removeAll(alteration = false) {
this.forEach((quad) => quad.remove(alteration));
}
moveTo(graph, alteration = true) {
let result = new QuadArray();
this.forEach((quad) => {
result.push(quad.moveToGraph(graph, alteration));
});
return result;
}
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_js_1.NodeSet();
for (var quad of this) {
res.add(quad.subject);
}
return res;
}
getPredicates() {
var res = new NodeSet_js_1.NodeSet();
for (var quad of this) {
res.add(quad.predicate);
}
return res;
}
getObjects() {
var res = new NodeSet_js_1.NodeSet();
for (var quad of this) {
res.add(quad.object);
}
return res;
}
map(callbackfn) {
return super.map(callbackfn);
}
getExplicit() {
return this.filter((quad) => !quad.implicit);
}
getImplicit() {
return this.filter((quad) => quad.implicit);
}
turnOn() {
this.forEach((quad) => quad.turnOn());
}
turnOff() {
this.forEach((quad) => quad.turnOff());
}
toString() {
//without this the toString() would print 3 URI's for each quad followed by a ',' which looks messy and unclear
return this.join('\n');
}
print() {
console.log(this.toString());
}
}
exports.QuadArray = QuadArray;
//# sourceMappingURL=QuadArray.js.map