Source: repository/get-statements-payload.js

const StatementPayload = require('../repository/statement-payload');
const RDFMimeType = require('../http/rdf-mime-type');

/**
 * Payload object holding all request parameters applicable for the statements
 * endpoint.
 * <code>new GetStatementsPayload().setSubject('<http://ns>')
 *  .setInference(true).get()</code> returns a constructed payload <code>
 * { subject: '<http://ns>', inference: true }</code>
 *
 * By default <code>responseType</code> is set to
 * <code>application/rdf+json</code>.
 *
 * @class
 * @author Mihail Radkov
 * @author Svilen Velikov
 */
class GetStatementsPayload extends StatementPayload {
  /**
   * Constructs this payload class populating some reasonable defaults.
   */
  constructor() {
    super();
    this.setResponseType(RDFMimeType.RDF_JSON);
  }

  /**
   * @param {boolean} [inference] defines if inferred statements should be
   *      included in the result of GET requests.
   * @return {GetStatementsPayload}
   */
  setInference(inference) {
    this.payload.inference = inference;
    return this;
  }

  /**
   * @return {boolean} inference
   */
  getInference() {
    return this.payload.inference;
  }

  /**
   * Sets responseType parameter.
   * @param {RDFMimeType} [responseType]
   * @return {GetStatementsPayload}
   */
  setResponseType(responseType) {
    this.payload.responseType = responseType;
    return this;
  }

  /**
   * @return {string} responseType
   */
  getResponseType() {
    return this.payload.responseType;
  }
}

module.exports = GetStatementsPayload;