public code v1

This commit is contained in:
2026-05-22 11:14:29 +02:00
parent 427197ec5a
commit b8141736eb
28859 changed files with 575079 additions and 0 deletions
@@ -0,0 +1,77 @@
package afryca.decisionmatrix.command;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.core.di.extensions.Preference;
import org.eclipse.e4.core.services.log.ILoggerProvider;
import org.eclipse.e4.core.services.log.Logger;
import afryca.ase.ParametersBuilder;
import afryca.ase.service.IASEService;
import afryca.decisionmatrix.DecisionMatrix;
import afryca.decisionmatrix.preferences.PreferenceConstants;
/**
* Generate random DecisionMatrix
*
* @author Sinbad²
* @version 3.0
*/
@SuppressWarnings("restriction")
public class GenerateRandomDecisionMatrix {
public static final String ID = "afryca.decisionmatrix.command.generate_random_decisionmatrix"; //$NON-NLS-1$
public static final String NUMBER_OF_ALTERNATIVES = "number_of_alternatives"; //$NON-NLS-1$
private Logger logger;
private Boolean lastCheckCanExecute;
@Inject
public void instantiateLogger(ILoggerProvider loggerProvider) {
logger = loggerProvider.getClassLogger(this.getClass());
}
@Execute
public DecisionMatrix execute(
@Named(NUMBER_OF_ALTERNATIVES) Integer numberOfAlternatives,
IASEService aseService,
@Preference(nodePath = PreferenceConstants.NODEPATH, value = PreferenceConstants.RANDOM_DECISION_MATRIX_FUNCTION_KEY) String function) {
logger.info("DecisionMatrix", ID);
return generateRandomDecisionMatrix(aseService, function, numberOfAlternatives);
}
private static DecisionMatrix generateRandomDecisionMatrix(IASEService aseService, String function, int n) {
return (DecisionMatrix) aseService.executeFunction(
function,
ParametersBuilder
.aseDefault()
.add("n", Integer.toString(n)) //$NON-NLS-1$
.join())
.getResult();
}
@CanExecute
public boolean canExecute(@Optional @Named(NUMBER_OF_ALTERNATIVES) Integer numberOfAlternatives) {
boolean can = checkCanCondition(numberOfAlternatives);
tryToLogCanExecute(can);
return can;
}
private boolean checkCanCondition(Integer numberOfAlternatives) {
return (numberOfAlternatives != null) && (numberOfAlternatives >= 2);
}
private void tryToLogCanExecute(boolean can) {
boolean log = (lastCheckCanExecute != null) ? (lastCheckCanExecute != can) : true;
lastCheckCanExecute = can;
if (log) {
logger.info("DecissionMatrix", ID, can);
}
}
}