"use strict"; /* exported logger */ var logger = require('./logger'); var ConfigurationType = require('./ConfigurationType'); var MiriamType = require('./map/data/MiriamType'); var PrivilegeType = require('./map/data/PrivilegeType'); var ModificationStateType = require('./map/data/ModificationStateType'); function Configuration(json) { var self = this; var i; self._options = []; for (i = 0; i < json.options.length; i++) { var conf = json.options[i]; var type = conf.type; var value = conf.value; self.setOption(type, value); } var legendFiles = []; if (self.getOption("LEGEND_FILE_1") !== undefined) { legendFiles.push(self.getOption("LEGEND_FILE_1")); } if (self.getOption("LEGEND_FILE_2") !== undefined) { legendFiles.push(self.getOption("LEGEND_FILE_2")); } if (self.getOption("LEGEND_FILE_3") !== undefined) { legendFiles.push(self.getOption("LEGEND_FILE_3")); } if (self.getOption("LEGEND_FILE_4") !== undefined) { legendFiles.push(self.getOption("LEGEND_FILE_4")); } self.setOption(ConfigurationType.LEGEND_FILES, legendFiles); var overlayTypes = []; for (i = 0; i < json.overlayTypes.length; i++) { overlayTypes.push(json.overlayTypes[i].name); } self.setOverlayTypes(overlayTypes); self.setImageConverters(json.imageFormats); self.setModelConverters(json.modelFormats); self.setElementTypes(json.elementTypes); self.setReactionTypes(json.reactionTypes); self.setMiriamTypes(json.miriamTypes); self.setModificationStateTypes(json.modificationStateTypes); self.setPrivilegeTypes(json.privilegeTypes); } Configuration.prototype.setOption = function (type, value) { this._options[type] = value; }; Configuration.prototype.getOption = function (type) { return this._options[type]; }; Configuration.prototype.setOverlayTypes = function (overlayTypes) { this._overlayTypes = overlayTypes; }; Configuration.prototype.getOverlayTypes = function () { return this._overlayTypes; }; Configuration.prototype.setImageConverters = function (imageConverters) { this._imageConverters = imageConverters; }; Configuration.prototype.getImageConverters = function () { return this._imageConverters; }; Configuration.prototype.setModelConverters = function (modelConverters) { this._modelConverters = modelConverters; }; Configuration.prototype.getModelConverters = function () { return this._modelConverters; }; Configuration.prototype.setElementTypes = function (elementTypes) { this._elementTypes = elementTypes; }; Configuration.prototype.getElementTypes = function () { return this._elementTypes; }; Configuration.prototype.getElementTypeNames = function () { var result = []; for (var i = 0; i < this._elementTypes.length; i++) { result.push(this._elementTypes[i].name); } return result; }; Configuration.prototype.setReactionTypes = function (reactionTypes) { this._reactionTypes = reactionTypes; }; Configuration.prototype.getReactionTypes = function () { return this._reactionTypes; }; Configuration.prototype.setMiriamTypes = function (miriamTypes) { this._miriamTypes = []; for (var key in miriamTypes) { if (miriamTypes.hasOwnProperty(key)) { var typeData = miriamTypes[key]; this._miriamTypes.push(new MiriamType(typeData, key)); } } }; Configuration.prototype.setPrivilegeTypes = function (privilegeTypes) { this._privilegeTypes = []; for (var key in privilegeTypes) { if (privilegeTypes.hasOwnProperty(key)) { var typeData = privilegeTypes[key]; this._privilegeTypes.push(new PrivilegeType(typeData, key)); } } }; Configuration.prototype.getPrivilegeTypes = function () { return this._privilegeTypes; }; Configuration.prototype.getMiriamTypeByName = function (name) { var self = this; for (var i = 0; i < self._miriamTypes.length; i++) { var miriamType = self._miriamTypes[i]; if (miriamType.getName() === name) { return miriamType; } } return null; }; Configuration.prototype.setModificationStateTypes = function (modificationStateTypes) { this._modificationStateTypes = []; for (var key in modificationStateTypes) { if (modificationStateTypes.hasOwnProperty(key)) { var typeData = modificationStateTypes[key]; this._modificationStateTypes.push(new ModificationStateType(typeData, key)); } } }; Configuration.prototype.getModificationStateTypeByName = function (name) { var self = this; for (var i = 0; i < self._modificationStateTypes.length; i++) { var modificationStateType = self._modificationStateTypes[i]; if (modificationStateType.getName() === name) { return modificationStateType; } } return null; }; module.exports = Configuration;