package org.lemsml.jlems.io.out; import org.lemsml.jlems.core.display.DataViewer; import org.lemsml.jlems.core.display.DataViewerFactory; import org.lemsml.jlems.core.out.ResultWriter; import org.lemsml.jlems.core.out.ResultWriterFactory; import org.lemsml.jlems.core.run.RuntimeOutput; import org.lemsml.jlems.core.type.LemsCollection; public final class StringBuilderResultWriterFactory extends ResultWriterFactory { static StringBuilderResultWriterFactory instance; static LemsCollection<StringBuilderResultWriter> resultWriters = new LemsCollection<StringBuilderResultWriter>(); // inject this into the jLEMS DataViewerFactory: public static void initialize() { if (instance == null) { instance = new StringBuilderResultWriterFactory(); } } private StringBuilderResultWriterFactory() { super(); ResultWriterFactory.getFactory().setDelegate(this); } @Override public ResultWriter newResultWriter(RuntimeOutput ro) { ResultWriter ret = new StringBuilderResultWriter(ro); resultWriters.add((StringBuilderResultWriter)ret); return ret; } public static LemsCollection<StringBuilderResultWriter> getStringBuilderResultWriters() { return resultWriters; } }