GeoKnow/Jassa-Core

View on GitHub
lib/service/lookup_service/LookupServiceListServiceSparql.js

Summary

Maintainability
A
0 mins
Test Coverage
var Class = require('../../ext/Class');

var shared = require('../../util/shared');
var Promise = shared.Promise;

var HashMap = require('../../util/collection/HashMap');

var Concept = require('../../sparql/Concept');

var VarUtils = require('../../sparql/VarUtils');

var ExprVar = require('../../sparql/expr/ExprVar');
var E_OneOf = require('../../sparql/expr/E_OneOf');
var ElementFilter = require('../../sparql/element/ElementFilter');

var LookupServiceBase = require('./LookupServiceBase');


var LookupServiceListServiceSparql = Class.create(LookupServiceBase, {
    initialize: function(listService) {
        this.listService = listService;
    },

    /**
     * @param uris An array of rdf.Node objects that represent URIs
     */
    lookup: function(nodes) {
        var v = VarUtils.s;
        var element = new ElementFilter(new E_OneOf(new ExprVar(v), nodes));

        var concept = new Concept(element, v);

        var result = this.listService.fetchItems(concept)
            .then(function(entries) {
                var r = new HashMap();
                r.putEntries(entries);
                return r;
            });

        return result;
    }
});

module.exports = LookupServiceListServiceSparql;