Source: dataSources/abstractDataSource.js

/**
 * Класс AbstractDataSource предназначен для наследования частных классов - источнков данных
 */
class AbstractDataSource {
  /**
   * Создает экземпляр класса AbstractDataSource
   * @param params
   */
  constructor(params) {
    this.params = params || {};
  }

  getDataSource() {
    return this;
  }

  /**
   * Возвращает источник данных
   * @return {*}
   */
  getSource() {
    return this.source;
  }

  /**
   * Устанавливает источник данных
   * @param source
   */
  setSource(source) {
    this.source = source;
  }

  getMappings() {
    if (this.params.mappings) return this.params.mappings;
    return {};
  }

  setMappings(params) {
    this.params.mappings = params;
  }

  getFieldAlias(item) {
    let mappings = this.getMappings();
    let fieldName = item.fieldName;
    let alias = mappings[fieldName].alias || fieldName;
    return alias;
  }
}

module.exports = AbstractDataSource;