-
Piotr Gawron authoredPiotr Gawron authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Configuration.js 4.61 KiB
"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;