Ca ne fonctionne pas.
Voila comment j'ai fait, mais je vais appeler de suite pour avoir la solution car j'ai plus le temps de chercher.
dans mon plan :
nextSimulation.getParameter().getTagValue().put("epsSRSole",epssol);
nextSimulation.getParameter().getTagValue().put("epsSRPlaice",epsple);
nextSimulation.getParameter().getTagValue().put("epsSRRedMullet",epsmur);
nextSimulation.getParameter().getTagValue().put("migSole",migsol);
nextSimulation.getParameter().getTagValue().put("migPlaice",migple);
nextSimulation.getParameter().getTagValue().put("migRedMullet",migmur);
dans l init d une regle:
String tmp0 = context.getSimulationStorage().getParameter().getTagValue().get("epsSRSole");
double [] epssol = StringUtil.toArrayDouble(tmp0.split(";"));
String tmp1 = context.getSimulationStorage().getParameter().getTagValue().get("epsSRPlaice");
double [] epsple = StringUtil.toArrayDouble(tmp1.split(";"));
String tmp2 = context.getSimulationStorage().getParameter().getTagValue().get("epsSRRedMullet");
double [] epsmur = StringUtil.toArrayDouble(tmp2.split(";"));
String tmp3 = context.getSimulationStorage().getParameter().getTagValue().get("migSole");
double [] migsol = StringUtil.toArrayDouble(tmp3.split(";"));
String tmp4 = context.getSimulationStorage().getParameter().getTagValue().get("migPlaice");
double [] migple = StringUtil.toArrayDouble(tmp4.split(";"));
String tmp5 = context.getSimulationStorage().getParameter().getTagValue().get("migRedMullet");
double [] migmur = StringUtil.toArrayDouble(tmp5.split(";"));
context.setValue("epsSRSole",epssol);
context.setValue("epsSRPlaice",epsple);
context.setValue("epsSRRedMullet",epsmur);
context.setValue("migSole",migsol);
context.setValue("migPlaice",migple);
context.setValue("migRedMullet",migmur);
dans mes equations:
if(context.getValue("epsSR"+pop.getName()) != null){
Object[] epslist = (Object[])context.getValue("epsSR"+pop.getName());
eps = (Double) epslist[y-3];
System.out.println("eps repro"+eps);
}else eps = 0; // N(0,0.16)
if (y>2 && context.getValue("mig"+pop.getName()) != null){
Object[] miglist = (Object[])context.getValue("mig"+pop.getName());
y = (int)miglist[y-3];
System.out.println("migration y="+y);
}
Caused by: fr.ifremer.isisfish.IsisFishRuntimeException: Can't invoke method 'public abstract double fr.ifremer.isisfish.equation.MigrationEquation.compute(fr.ifremer.isisfish.simulator.SimulationContext,org.nuiton.math.matrix.MatrixND,fr.ifremer.isisfish.entities.Population,fr.ifremer.isisfish.entities.PopulationGroup,fr.ifremer.isisfish.entities.Zone,fr.ifremer.isisfish.entities.Zone) throws java.lang.Exception' for class formules.MigrationEquationfr_ifremer_isisfish_entities_Equation_1370351884680_0_28760183076366463
at fr.ifremer.isisfish.util.EvaluatorHelper.invoke(EvaluatorHelper.java:369)
at fr.ifremer.isisfish.util.EvaluatorHelper.evaluate(EvaluatorHelper.java:249)
at fr.ifremer.isisfish.entities.EquationImpl.evaluate(EquationImpl.java:75)
... 12 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fr.ifremer.isisfish.util.EvaluatorHelper.invoke(EvaluatorHelper.java:366)
... 14 more
Caused by: java.lang.ClassCastException: [D cannot be cast to [Ljava.lang.Object;
at formules.MigrationEquationfr_ifremer_isisfish_entities_Equation_1370351884680_0_28760183076366463.compute(MigrationEquationfr_ifremer_isisfish_entities_Equation_1370351884680_0_28760183076366463.java:10)