package com.plectix.simulator.util; import org.apache.commons.cli.ParseException; import org.apache.log4j.PropertyConfigurator; import com.plectix.simulator.SimulatorTestOptions; import com.plectix.simulator.io.SimulationDataReader; import com.plectix.simulator.io.xml.SimulationDataXMLWriter; import com.plectix.simulator.simulator.SimulationData; import com.plectix.simulator.simulator.Simulator; import com.plectix.simulator.simulator.SimulatorCommandLine; import com.plectix.simulator.util.Info.InfoType; import com.plectix.simulator.util.io.StringBufferWriter; public abstract class GenerateXMLByModel extends DefaultPropertiesForTest { private Simulator mySimulator; private String sessionPath; private String mycount; private String directory; private Integer operationMode; public abstract SimulatorTestOptions prepareTestModelArgs(); // public abstract SimulatorTestOptions prepareTestModelArgs(String count); public abstract String getComparePath(); public String generateXML(String dir, String prefixFile, Integer opMode) throws Exception { return generateXML(dir, null, prefixFile, opMode); } private String generateXML(String dir, String dirResult, String prefixFile, Integer opMode) throws Exception { PropertyConfigurator.configure(LOG4J_PROPERTIES_FILENAME); mySimulator = new Simulator(); directory = dir; sessionPath = dirResult; mycount = prefixFile; operationMode = opMode; SimulatorCommandLine commandLine; try { commandLine = prepareTestModelArgs().toCommandLine(); } catch (ParseException e) { e.printStackTrace(); throw new IllegalArgumentException(e); } SimulationData simulationData = mySimulator.getSimulationData(); simulationData.setSimulationArguments(InfoType.OUTPUT, commandLine .getSimulationArguments()); (new SimulationDataReader(simulationData)).readAndCompile(); simulationData.getKappaSystem().initialize(); try { StringBufferWriter writer = new StringBufferWriter(); new SimulationDataXMLWriter(simulationData).outputXMLData(writer); return writer.toString(); } catch (Exception e) { e.printStackTrace(); junit.framework.Assert.fail(e.getMessage()); return null; } } public String getSessionPathInside() { return sessionPath; } public String getMyCountInside() { return mycount; } public String getDirectoryInside() { return directory; } public Integer getOperationMode() { return operationMode; } public String fileName(String suffix, String number, String extension) { return directory + suffix + number + extension; } // // public String defaultModelFileName(String number) { // return directory + DEFAULT_PREFIX_MODEL_FILE + number + DEFAULT_EXTENTION_FILE; // } // // public String defaultXMLFileName(String number) { // return directory + DEFAULT_PREFIX_XML_FILE + number + DEFAULT_EXTENTION_FILE; // } public String defaultPathModelFileName() { return directory + DEFAULT_PREFIX_MODEL_FILE + mycount + DEFAULT_EXTENSION_FILE; } public String defaultPathXMLFileName() { return directory + DEFAULT_PREFIX_XML_FILE + mycount + DEFAULT_EXTENSION_FILE; } }