Files
AFRYCA/plugins/afryca.rcp/preloaded/module/ConsistencyHLPR/mb/Simulation consistencyHLPR.mb
T
2026-05-22 11:14:29 +02:00

66 lines
3.5 KiB
Plaintext

<module.binding>
<file></file>
<name>Simulation consistencyHLPR</name>
<module>ConsistencyHLPR</module>
<bindings>
<binding>irSim</binding>
<binding>frSim</binding>
</bindings>
<sourceEventsBindings>
<sourceEventsBinding>sim</sourceEventsBinding>
<sourceEventsBinding>eSim</sourceEventsBinding>
<sourceEventsBinding>cSim</sourceEventsBinding>
</sourceEventsBindings>
<inputConverter>
var preferences = [];
var rounds = sim.getResult().get(EResultElements.rounds_results);
var initialRound = rounds.get(irSim);
var finalRound = rounds.get(frSim);
var initialPreferences = initialRound.get(ERoundResult.pre_preferences);
var finalPreferences = finalRound.get(ERoundResult.pos_preferences);
if (eSim != null && cSim != null) {
preferences[0] = initialPreferences[(sim.getGDMP().getCriteria().size() * sim.getGDMP().getExperts().indexOf(eSim)) + sim.getGDMP().getCriteria().indexOf(cSim)];
preferences[1] = finalPreferences[(sim.getGDMP().getCriteria().size() * sim.getGDMP().getExperts().indexOf(eSim)) + sim.getGDMP().getCriteria().indexOf(cSim)];
} else if(eSim != null && cSim == null) {
if(cNum > 1){
var expertsPreferencesInitial = [];
var expertsPreferencesFinal = [];
for(var crit = 0; crit < sim.getGDMP().getCriteria().size(); ++crit) {
expertsPreferencesInitial[crit] = initialPreferences[sim.getGDMP().getExperts().indexOf(eSim) * sim.getGDMP().getCriteria().size() + crit];
expertsPreferencesFinal[crit] = finalPreferences[sim.getGDMP().getExperts().indexOf(eSim) * sim.getGDMP().getCriteria().size() + crit];
}
preferences[0] = expertsPreferencesInitial[0].groupPreferences(expertsPreferencesInitial.length, sim.getGDMP().getAlternatives().size(), sim.getGDMP().getCriteria().size(), expertsPreferencesInitial);
preferences[1] = expertsPreferencesFinal[0].groupPreferences(expertsPreferencesFinal.length, sim.getGDMP().getAlternatives().size(), sim.getGDMP().getCriteria().size(), expertsPreferencesFinal);
}else{
preferences[0] = initialPreferences[sim.getGDMP().getExperts().indexOf(eSim)];
preferences[1] = finalPreferences[sim.getGDMP().getExperts().indexOf(eSim)];
}
} else if(eSim == null && cSim != null) {
var criteriaPreferencesInitial = [];
var criteriaPreferencesFinal = [];
for(var exp = 0; exp < sim.getGDMP().getExperts().size(); ++exp) {
criteriaPreferencesInitial[exp] = initialPreferences[exp * sim.getGDMP().getCriteria().size() + sim.getGDMP().getCriteria().indexOf(cSim)];
criteriaPreferencesFinal[exp] = finalPreferences[exp * sim.getGDMP().getCriteria().size() + sim.getGDMP().getCriteria().indexOf(cSim)];
}
preferences[0] = criteriaPreferencesInitial[0].groupPreferences(criteriaPreferencesInitial.length, sim.getGDMP().getAlternatives().size(), sim.getGDMP().getCriteria().size(), criteriaPreferencesInitial);
preferences[1] = criteriaPreferencesFinal[0].groupPreferences(criteriaPreferencesFinal.length, sim.getGDMP().getAlternatives().size(), sim.getGDMP().getCriteria().size(), criteriaPreferencesFinal);
} else {
preferences[0] = initialPreferences[initialPreferences.length - 1];
preferences[1] = finalPreferences[finalPreferences.length - 1];
}
</inputConverter>
<outputConverter>
var difference = (mbresult[1] - mbresult[0]).toFixed(2)/1;
mbresult = mbresult[1].toFixed(2);
if (difference != 0) {
if (difference > 0) {
mbresult += ' (+' + difference + ')';
} else {
mbresult += ' (' + difference + ')';
}
}
</outputConverter>
<binding.output>java.lang.String</binding.output>
</module.binding>