diff --git a/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/simulation/SEDMLSimulation.java b/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/simulation/SEDMLSimulation.java index 51248b6..385121e 100644 --- a/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/simulation/SEDMLSimulation.java +++ b/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/simulation/SEDMLSimulation.java @@ -11,8 +11,8 @@ import org.jlibsedml.Output; import org.jlibsedml.SEDMLDocument; import org.jlibsedml.SedML; +import org.jlibsedml.execution.IProcessedSedMLSimulationResults; import org.jlibsedml.execution.IRawSedmlSimulationResults; -import org.simulator.math.odes.MultiTable; import org.simulator.sedml.SedMLSBMLSimulatorExecutor; public class SEDMLSimulation extends AbstractSimulation { @@ -33,13 +33,10 @@ public SimulationResult simulate(String path) throws Exception { SedMLSBMLSimulatorExecutor exe = new SedMLSBMLSimulatorExecutor(sedml, wanted, sedmlDir); Map> res = exe.run(); if (res == null || res.isEmpty() || !exe.isExecuted()) { - // XXX: throw Ex. and log + // } else { - @SuppressWarnings("rawtypes") - Map results = exe.runSimulations(); - @SuppressWarnings("unchecked") - MultiTable solution = (MultiTable) exe.processSimulationResults(wanted, results); - return new ResultAdapter(solution).getResult(); + IProcessedSedMLSimulationResults results = exe.processSimulationResults(wanted, res); + return new ResultAdapter(results, sedml.getElementName()).getResult(); } return null; } diff --git a/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/utils/Utils.java b/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/utils/Utils.java index c46b05a..7eafccb 100644 --- a/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/utils/Utils.java +++ b/org.insilico.vissim.sbscl/src/org/insilico/vissim/sbscl/utils/Utils.java @@ -4,17 +4,20 @@ import static org.junit.Assert.assertTrue; import java.io.File; +import java.io.IOException; import javax.xml.stream.XMLStreamException; +import org.insilico.vissim.sbscl.factory.SimulationResult; import org.insilico.vissim.sbscl.simulation.SimulationType; import org.jlibsedml.Libsedml; +import org.sbml.jsbml.Model; import org.sbml.jsbml.SBMLReader; import org.simulator.omex.OMEXArchive; /** - * Some basic utilities which need to be in helping project (for shifting operations or - * other reasons), which are not toolkit dependent. + * Some basic utilities which need to be in helping project (for shifting + * operations or other reasons), which are not toolkit dependent. */ public class Utils { @@ -22,30 +25,30 @@ public class Utils { * Provides the type of corresponding simulation * *

- * Every simulation is eponymous to the type of the file specified. - * e.g SimulationType.SEDML is a simulation described with SED-ML file. + * Every simulation is eponymous to the type of the file specified. e.g + * SimulationType.SEDML is a simulation described with SED-ML file. * * @param path absolute path to the file * @return {@link SimulationType} - * */ + */ public SimulationType getSimulationType(String path) { - if (Libsedml.isSEDML(new File(path))) - return SimulationType.SEDML; - if (isOMEXArchiv(path)) { - return SimulationType.OMEX; - } - if (isSBML(path)) { - return SimulationType.SBML; - } + if (isSBML(path)) { + return SimulationType.SBML; + } + if (Libsedml.isSEDML(new File(path))) + return SimulationType.SEDML; + if (isOMEXArchiv(path)) { + return SimulationType.OMEX; + } return SimulationType.UNKNOWN_ENTITY; } /** - * Checks if provided file is a OMEXArchiv (combination of SED-ML - * and SBML file with additional data) + * Checks if provided file is a OMEXArchiv (combination of SED-ML and SBML file + * with additional data) * * @param path absolute path to the file - * */ + */ private boolean isOMEXArchiv(String path) { OMEXArchive archive; try { @@ -59,20 +62,21 @@ private boolean isOMEXArchiv(String path) { return Boolean.FALSE; } } - + /** - * Checks if provided file is a SBML file - * XXX: more efficient check should be considered + * Checks if provided file is a SBML file XXX: more efficient check should be + * considered * * @param path absolute path to the file - * */ + */ private boolean isSBML(String path) { try { // this check should be changed // reading file to define file type is inefficient - SBMLReader.read(path); + SBMLReader reader = new SBMLReader(); + assertNotNull(reader.readSBML(path).getModel()); return Boolean.TRUE; - } catch (XMLStreamException e) { + } catch (XMLStreamException | IOException e) { return Boolean.FALSE; } }