/**
* Object that passes as query parameter to [DS.Store](http://emberjs.com/api/data/classes/DS.Store.html) methods for reading data.
*
* @module ember-flexberry-data
* @class QueryObject
*/
export default class QueryObject {
/**
* @param modelName {String} The model name of the requested entities.
* @param id {String|Number} The id of the requested entity.
* @param projectionName {String} The name of used projection for reading the requested entities.
* @param predicate {BasePredicate} The predicate that contains filtering conditions for requested entities.
* @param order {OrderByClause} Ordering conditions for requested entities.
* @param top {Number} The number of items in the queried collection to be included in the result.
* @param skip {Number} The number of items in the queried collection that are to be skipped and not included in the result.
* @param count {Boolean} Flag indicates to request a count of the matching entities included with the entities in the response.
* @param expand {Object} Specifies the related entities to be included in line with retrieved entities.
* @param select {Object} A specific set of properties for each requested entity.
* @param primaryKeyName {Object} The name of primary key field for specified model name in modelName property.
* @param extend {Object} An additional computed set of properties for each requested entity. Based on properties in predicate and order, but not included in select and expand.
* @param customQueryParams {Object} An additional query parameters.
* @param dataType {String} A data type for the request. Supported types: 'json' and 'blob'.
* @class QueryObject
* @constructor
*/
constructor(modelName, id, projectionName, predicate, order, top, skip, count, expand, select, primaryKeyName, extend, customQueryParams, dataType) {
this.id = id;
this.modelName = modelName;
this.projectionName = projectionName;
this.predicate = predicate;
this.order = order;
this.top = top;
this.skip = skip;
this.count = count;
this.expand = expand;
this.select = select;
this.primaryKeyName = primaryKeyName;
this.extend = extend;
this.customQueryParams = customQueryParams;
this.dataType = dataType;
}
}