afryca.ase.Snippet Library adapters Adapters var adapters = (typeof exports === "undefined")?(function adapters() {}):(exports); if(typeof global !== "undefined") { global.adapters = adapters; } adapters.toMultidimensionalArray = function toMultidimensionalArray(value, type) { var lengths = []; var aux = value; while (Array.isArray(aux)) { lengths[lengths.length] = aux.length; aux = aux[0]; } var depth = lengths.length; var ResultType = Java.type(type); if (depth < 2) { return Java.to(value, type); } else { var result = eval('new ResultType(' + lengths[0] + ')'); var simpleType = type.substring(0, type.length() - 2); for (var i = 0; i < result.length; i++) { result[i] = adapters.toMultidimensionalArray(value[i], simpleType); } return result; } } adapters.toNumber = function toNumber(value) { try { var DoubleType = Java.type('java.lang.Double'); var number = DoubleType.valueOf(value); var NumberType = Java.type('java.lang.Number'); return (NumberType.class.isInstance(number)) ? NumberType.class.cast(number) : null; } catch (err) { return null; } } adapters.toDouble = function toDouble(value) { var number = adapters.toNumber(value); return (number != null) ? number.doubleValue() : null; } adapters.toInteger = function toInteger(value) { var number = adapters.toNumber(value); return (number != null) ? number.intValue() : null; } adapters.fuzzyValue2SaatyValue = function fuzzyValue2SaatyValue(value) { return Math.pow(9, 2 * value - 1); } adapters.fuzzyRelation2SaatyRelation = function fuzzyRelation2SaatyRelation(relation) { var elements = relation.length; var result = new Array(elements); for (var i = 0; i < elements; i++) { result[i] = new Array(elements); for (var j = 0; j < elements; j++) { result[i][j] = adapters.fuzzyValue2SaatyValue(relation[i][j]); } } return result; } adapters.saatyValue2FuzzyValue = function saatyValue2FuzzyValue(value) { return (1 + (Math.log(value) / Math.log(9)))/2; } adapters.saatyRelation2FuzzyRelation = function saatyRelation2FuzzyRelation(relation) { var elements = relation.length; var result = new Array(elements); for (var i = 0; i < elements; i++) { result[i] = new Array(elements); for (var j = 0; j < elements; j++) { result[i][j] = adapters.saatyValue2FuzzyValue(relation[i][j]); } } return result; } adapters.fpr2jsArray = function fpr2jsArray(preference) { var result; var elements = preference.getNumberOfAlternatives(); result = new Array(elements); for (var i = 0; i < elements; i++) { result[i] = new Array(elements); for (var j = 0; j < elements; j++) { result[i][j] = preference.getValue(i | 0, j | 0); } } return result; } adapters.fpr2jsSaatyRelation = function fpr2jsSaatyRelation(preference) { var jsFuzzyPreferences = adapters.fpr2jsArray(preference); return adapters.fuzzyRelation2SaatyRelation(jsFuzzyPreferences); } adapters.preferencesAsVectorsArray = function preferecesAsVectorsArray(preferences) { var result = []; var preference; var preferencesArray = preferences[0].getPreferences(); for (var p = 0; p < preferences.length; p++) { preference = []; for (var i = 0; i < preferencesArray.length; i++) { for (var j = 0; j < preferencesArray[i].length; j++) { if(preferences[p] instanceof DecisionMatrix) { preference[preference.length] = preferences[p].getValue(i | 0, j | 0); } else { if (i != j) { preference[preference.length] = preferences[p].getValue(i | 0, j | 0); } } } } result[p] = preference; } return result; } adapters.matrixAsVectorsArray = function matrixAsVectorsArray(preferences) { var result = []; var preference; for (var p = 0; p < preferences.length; p++) { preference = []; for (var i = 0; i < preferences[p].length; i++) { for (var j = 0; j < preferences[p][i].length; j++) { preference[preference.length] = preferences[p][i][j]; } } result[p] = preference; } return result; } adapters.arrayListAsVector = function arrayListAsVector(arrayList) { var result = []; for (var i = 0; i < arrayList.size(); i++) { result[i] = arrayList.get(i); } return result; } adapters.copyNElementsVector = function copyNElementsVector(vector, n) { var result = []; for(var i = 0; i < n; i++){ result[i] = vector[i]; } return result; } adapters