GeoKnow/Jassa-Core

View on GitHub
lib/sparql/element/ElementSubQuery.js

Summary

Maintainability
A
1 hr
Test Coverage
var Class = require('../../ext/Class');
var Element = require('./Element');

var ElementSubQuery = Class.create(Element, {
    classLabel: 'jassa.sparql.ElementSubQuery',
    initialize: function(query) {
        this.query = query;
    },

    getQuery: function() {
        return this.query;
    },

    getArgs: function() {
        return [];
    },

    copy: function(args) {
        if (args.length !== 0) {
            throw new Error('Invalid argument');
        }

        // FIXME: Should we clone the attributes too?
        var result = new ElementSubQuery(this.query);
        return result;
    },

    toString: function() {
        return '{ ' + this.query + ' }';
    },

    copySubstitute: function(fnNodeMap) {
        return new ElementSubQuery(this.query.copySubstitute(fnNodeMap));
    },

    flatten: function() {
        return new ElementSubQuery(this.query.flatten());
    },

    getVarsMentioned: function() {
        return this.query.getVarsMentioned();
    },
});

module.exports = ElementSubQuery;