GeoKnow/Jassa-Core

View on GitHub
lib/sparql/BindingUtils.js

Summary

Maintainability
A
0 mins
Test Coverage
var xsd = require('../vocab/xsd');
var NodeFactory = require('../rdf/NodeFactory');
var Binding = require('./Binding');

var BindingUtils = {

    cloneBinding: function(binding) {
        var result = new Binding();
        var entries = binding.entries();
        entries.forEach(function(entry) {
            // TODO Replace with entry.key and entry.val
            result.put(entry.v, entry.node);
        });

        return result;
    },

    cloneBindings: function(bindings) {
        var result = bindings.map(function(binding) {
            var r = BindingUtils.cloneBinding(binding);
            return r;
        });

        return result;
    },

    /**
     * In place-addition of an 'index' mapping.
     *
     * @param bindings
     * @param v
     * @param offset
     * @returns
     */
    addRowIds: function(bindings, v, offset) {
        offset = offset || 0;

        bindings.forEach(function(binding, index) {
            var i = offset + index;
            var node = NodeFactory.createTypedLiteralFromString('' + i, xsd.xinteger);
            binding.put(v, node);
        });

        return bindings;
    },
};

module.exports = BindingUtils;