import static org.nuiton.i18n.I18n._; import java.util.HashSet; import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixIterator; import org.nuiton.math.matrix.MatrixND; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.SimulationStorage; SimulationStorage simulationstorage = ??; TopiaContext db = simulationstorage.getStorage().beginTransaction();//ouvrir un context pour modifier les donnees Population param_Population = "merluccius"; Population pop = (Population)db.findByTopiaId(param_Population.getTopiaId()); //reccupere la pop ciblee MatrixND c = pop.getCapturability(); // reccupere la matrice de capturabilite double valq1 = ; double valq2 = ; //log.info("Pour cette simulation : q1 = " + exp.q1 + ";" + "q2 = " + exp.q2 ); /////*** that is where you explain how to fill the catchability matrix with q1 and q2 for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); Object [] sem = i.getSemanticsCoordinates(); PopulationGroup group = (PopulationGroup)sem[0]; PopulationSeasonInfo season = (PopulationSeasonInfo)sem[1]; ////*** exemple when q2 corresponds to the 21 first groups (+ de 50% d'immatures) if (group.getId() < 21){ i.setValue(valq1); }else { i.setValue(val.q2); } }//fin du for db.commitTransaction(); // effectue la modification db.closeContext(); // ferme le context }