all files / sparql/ query-types.js

100% Statements 55/55
100% Branches 16/16
100% Functions 18/18
100% Lines 14/14
2 statements, 5 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107                                                                                                                                                                                           
'use strict';
 
import GraphPattern from './graph-pattern';
import Triple from './triple';
 
export class Select {
    /**
     * Creates a SELECT query
     *
     * @class Select
     * @constructor
     * @param {String} content - String arguments for SELECT keyword
     * @param {String} modifier - Optional modifier (e.g. DISTINCT)
     */
    constructor(content, modifier) {
        this._content = content;
        this._modifier = modifier;
    }
 
    /**
     * Retrieves the SPARQL string representation of the current instance
     *
     * @method toString
     * @returns {String}
     */
    toString() {
        return `SELECT${this._modifier ? ` ${this._modifier}` : ''} ${this._content}`;
    }
}
 
export class Describe {
    /**
     * Creates a DESCRIBE query
     *
     * @class Describe
     * @constructor
     * @param {String} content - String arguments for DESCRIBE keyword
     */
    constructor(content) {
        this._content = content;
    }
 
    /**
     * Retrieves the SPARQL string representation of the current instance
     *
     * @method toString
     * @returns {String}
     */
    toString() {
        return `DESCRIBE ${this._content}`;
    }
}
 
export class Ask {
    /**
     * Creates a ASK query
     *
     * @class Ask
     * @constructor
     */
    constructor() {
 
    }
 
    /**
     * Retrieves the SPARQL string representation of the current instance
     *
     * @method toString
     * @returns {String}
     */
    toString() {
        return 'ASK';
    }
}
 
export class Construct {
    /**
     * Creates a DESCRIBE query
     *
     * @class Construct
     * @constructor
     * @param {Triple|Array} triples - One or more Triple objects
     */
    constructor(triples) {
        this._constructTemplate = new GraphPattern(triples, false, false, ['Triple']);
    }
 
    /**
     * Add a Triple to the DESCRIBE query
     *
     * @method addTriple
     * @param {Triple} triple - A Triple object
     */
    addTriple(triple) {
        this._constructTemplate.addElement(triple);
    }
 
    /**
     * Retrieves the SPARQL string representation of the current instance
     *
     * @method toString
     * @returns {String}
     */
    toString() {
        return `DESCRIBE ${this._constructTemplate.toString()}`;
    }
}