r2910 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity
Author: jcouteau Date: 2010-01-13 15:18:13 +0000 (Wed, 13 Jan 2010) New Revision: 2910 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java Log: Factorize some code 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-13 14:20:25 UTC (rev 2909) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityCalculator.java 2010-01-13 15:18:13 UTC (rev 2910) @@ -19,13 +19,14 @@ package fr.ifremer.isisfish.simulator.sensitivity; import java.io.File; +import java.io.IOException; import java.util.Collection; import java.util.Iterator; import java.util.List; -import fr.ifremer.isisfish.util.ConverterUtil; +import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.export.SensitivityExport; import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.beanutils.ConvertUtilsBean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.j2r.REngine; @@ -38,7 +39,10 @@ import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.FileUtil; +import javax.swing.*; + public abstract class AbstractSensitivityCalculator implements SensitivityCalculator { @@ -237,7 +241,6 @@ } protected String getNominalValue(Factor factor){ - ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null); String path = factor.getPath(); String topiaId = path.substring(0,path.lastIndexOf("#")); String propertyName=path.substring(path.lastIndexOf("#") + 1); @@ -251,7 +254,98 @@ if (value == null){ return null; } + log.info("Nominal value :" + value); return value.toString(); } + protected String editRInstruction(String rCall){ + JLabel label = new JLabel( + "Modifier le code R envoyé si vous le souhaitez"); + JTextPane text = new JTextPane(); + text.setText(rCall); + text.setSize(400, 400); + text.setPreferredSize(text.getSize()); + + Box box = Box.createVerticalBox(); + box.add(label); + box.add(new JScrollPane(text)); + + JOptionPane.showMessageDialog(null, box, "R modif", + JOptionPane.QUESTION_MESSAGE); + return text.getText(); + } + + protected void testNoDiscrete(List<Factor<?,?>> factors) throws SensitivityException{ + for (Factor factor:factors) { + if (factor.getDomain() instanceof DiscreteDomain) { + throw new SensitivityException(factor.getName() + + " has a discrete domain, this is not acceptable for " + + "this method."); + } + } + } + + protected String createImportInstruction( + SensitivityExport export, + List<SimulationStorage> simulationStorages) { + + //the filename to read + String name = export.getExportFilename(); + //the extension to read + String extension = export.getExtensionFilename(); + //the rInstruction + String rInstruction = name + "<-c("; + + //iterate on all the simulations and read the value for each one + for (int l = 0; l < simulationStorages.size(); l++) { + + SimulationStorage simulationStorage = simulationStorages.get(l); + File directory = simulationStorage.getDirectory(); + + String directoryPath = directory.toString() + File.separator + + SimulationStorage.RESULT_EXPORT_DIRECTORY; + + File importFile = new File(directoryPath, name + extension); + + String simulResult=""; + try{ + simulResult = FileUtil.readAsString(importFile); + } catch (IOException ioe) { + log.error ("An error occured trying to read a result file : " + + ioe.getMessage()); + } + + + double simulationResult = Double.valueOf(simulResult); + + if (l < simulationStorages.size() - 1) { + rInstruction += simulationResult + ","; + } else { + rInstruction += simulationResult; + } + } + rInstruction += ")"; + + return rInstruction; + } + + protected void renameObjects(REngine engine, String simulationName) + throws RException { + + String renameIsisSimule = "%s.isis.simule<-isis.simule"; + String renameIsisFactorDistribution = "%s.isis.factor.distribution" + + "<-isis.factor.distribution"; + String renameIsisFactor = "%s.isis.factor<-isis.factors"; + String renameIsisMethodExp = "%s.isis.methodExp<-isis.MethodExp"; + + engine.voidEval(String.format(renameIsisSimule, simulationName)); + + engine.voidEval(String.format(renameIsisFactorDistribution, + simulationName)); + + engine.voidEval(String.format(renameIsisFactor, simulationName)); + + engine.voidEval(String.format(renameIsisMethodExp, simulationName)); + } + }
participants (1)
-
jcouteau@users.labs.libre-entreprise.org