Author: chatellier Date: 2010-01-08 13:30:57 +0000 (Fri, 08 Jan 2010) New Revision: 2892 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java Log: Set topia context on sensitivity calculator before calling compute method. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2010-01-08 11:29:18 UTC (rev 2891) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2010-01-08 13:30:57 UTC (rev 2892) @@ -434,9 +434,18 @@ // compute do bad modification on design plan String xmlDesignPlan = MexicoHelper.getDesignPlanAsXML(designPlan); + // get a TopiaContext on region database, for discret domain + // to get original database value (Nominal value) + RegionStorage regionStorage = RegionStorage.getRegion(param.getRegionName()); + TopiaContext context = regionStorage.getStorage().beginTransaction(); + sensitivitycalculator.setTopiaContext(context); + SensitivityScenarios sensitivityScenarios = sensitivitycalculator .compute(designPlan, masterExportDirectory); + // close context opened for nominal values + context.closeContext(); + // ajout des parametres de simulation localParameters.setSensitivityCalculator(sensitivitycalculator); localParameters.setNumberOfSensitivitySimulation(sensitivityScenarios.getScenarios().size()); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2010-01-08 11:29:18 UTC (rev 2891) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2010-01-08 13:30:57 UTC (rev 2892) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2009 Code Lutin + * Copyright (C) 2009-2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,13 +42,24 @@ public abstract class AbstractSensitivityCalculator implements SensitivityCalculator { - TopiaContext context; - /** to use log facility, just put in your code: log.info("..."); */ private static Log log = LogFactory .getLog(AbstractSensitivityCalculator.class); + /** Topia context used for discrete domain nominal value compute. */ + protected TopiaContext context; + /** + * Set topia context on current region to nominal value compute. + * + * @param context context + */ + @Override + public void setTopiaContext(TopiaContext context) { + this.context = context; + } + + /** * Method to create the isis.factors dataframe in R. * * @param plan Design plan of the sensitivity analysis @@ -224,11 +235,7 @@ } - public void setTopiaContext(TopiaContext context){ - this.context = context; - } - - String getNominalValue(Factor factor){ + protected String getNominalValue(Factor factor){ ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null); String path = factor.getPath(); String topiaId = path.substring(0,path.lastIndexOf("#")); @@ -240,7 +247,7 @@ } catch (Exception ee) { log.error("An error occurred while trying to get nominal value",ee); } - if (null!=value){ + if (null!=value) { return value.toString(); } else { return null; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java 2010-01-08 11:29:18 UTC (rev 2891) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/SensitivityCalculator.java 2010-01-08 13:30:57 UTC (rev 2892) @@ -21,6 +21,8 @@ import java.io.File; import java.util.List; +import org.nuiton.topia.TopiaContext; + import fr.ifremer.isisfish.datastore.SimulationStorage; /** @@ -37,6 +39,13 @@ public interface SensitivityCalculator { /** + * Set topia context on current region to nominal value compute. + * + * @param context context + */ + void setTopiaContext(TopiaContext context); + + /** * Return calculator description. * * @return calculator description