/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.lemsml.jlems.examples; import java.io.File; import java.io.IOException; import org.lemsml.jlems.core.expression.ParseError; import org.lemsml.jlems.core.flatten.ComponentFlattener; import org.lemsml.jlems.core.logging.E; import org.lemsml.jlems.core.run.ConnectionError; import org.lemsml.jlems.core.run.RuntimeError; import org.lemsml.jlems.core.sim.ContentError; import org.lemsml.jlems.core.sim.ParseException; import org.lemsml.jlems.core.sim.Sim; import org.lemsml.jlems.core.type.BuildException; import org.lemsml.jlems.core.type.Component; import org.lemsml.jlems.core.type.ComponentType; import org.lemsml.jlems.core.type.Lems; import org.lemsml.jlems.core.xml.XMLException; import org.lemsml.jlems.io.logging.DefaultLogger; import org.lemsml.jlems.io.reader.FileInclusionReader; import org.lemsml.jlems.io.xmlio.XMLSerializer; import org.lemsml.jlems.viz.datadisplay.SwingDataViewerFactory; public class Example1FlatComponent { public static void main(String[] args) throws ContentError, ParseError, ConnectionError, RuntimeError, IOException, ParseException, BuildException, XMLException { DefaultLogger.initialize(); SwingDataViewerFactory.initialize(); Example1FlatComponent cft = new Example1FlatComponent(); cft.runExample8(); } public void runExample1() throws ContentError, ConnectionError, ParseError, IOException, RuntimeError, ParseException, BuildException, XMLException { File f1 = new File("src/test/resources/example1.xml"); flattenFromFile(f1, "na"); } public void runExample8() throws ContentError, ConnectionError, ParseError, IOException, RuntimeError, ParseException, BuildException, XMLException { File f1 = new File("src/test/resources/example8.xml"); flattenFromFile(f1, "multiregime"); } public void flattenFromFile(File f, String tgtid) throws ContentError, ConnectionError, ParseError, IOException, RuntimeError, ParseException, BuildException, XMLException { E.info("Loading LEMS file from: " + f.getAbsolutePath()); FileInclusionReader fir = new FileInclusionReader(f); Sim sim = new Sim(fir.read()); sim.readModel(); sim.build(); //sim.run(); Lems lems = sim.getLems(); Component cpt = lems.getComponent(tgtid); String origOut = XMLSerializer.serialize(cpt.getComponentType()); E.info("Orig type: \n" + origOut); ComponentFlattener cf = new ComponentFlattener(lems, cpt); ComponentType ct = cf.getFlatType(); Component cp = cf.getFlatComponent(); String typeOut = XMLSerializer.serialize(ct); String cptOut = XMLSerializer.serialize(cp); E.info("Flat type: \n" + typeOut); E.info("Flat cpt: \n" + cptOut); lems.addComponentType(ct); lems.addComponent(cp); lems.resolve(ct); lems.resolve(cp); // lems.replaceComponent(cpt, cp); sim.build(); E.info("running simulation..."); sim.run(); E.info("Done"); } }