package com.framsticks.examples; import com.framsticks.core.Instance; import com.framsticks.dumping.PrintWriterSink; import com.framsticks.model.*; import com.framsticks.model.f0.Schema; import com.framsticks.params.*; import com.framsticks.parsers.F0Parser; import com.framsticks.parsers.F0Writer; import org.apache.log4j.Logger; import java.io.PrintWriter; import java.io.StringWriter; import java.util.List; import javax.annotation.OverridingMethodsMustInvokeSuper; /** * Author: Piotr Ĺšniegowski */ public class GenotypeBrowser extends Instance { private static final Logger log = Logger .getLogger(Instance.class.getName()); protected Schema schema; public GenotypeBrowser() { log.info("model builder created"); } // @Override // public void configure(Configuration config) { // super.configure(config); // try { // schema = Schema.load(Schema.getDefaultDefinitionAsStream()); // } catch (Exception e) { // log.error("failed to load schema: " + e); // } // this.registry = schema.getRegistry(); // Package.register(this.getRegistry()); // registry.putInfoIntoCache(FramsClass.build() // .idAndName("ModelBuilderRoot") // .param(Param.build().id("model").type("o Model").name("model")) // .param(Param.build().id("genotype").type("s 1").name("genotype")) // .finish() // ); // root = new Node(Param.build().type("o ModelBuilderRoot").id(name).name("Instance"), PropertiesAccess.createPropertiesMap()); // } @Override @OverridingMethodsMustInvokeSuper protected void firstTask() { assert isActive(); super.firstTask(); try { List accesses = new F0Parser(schema, GenotypeBrowser.class.getResourceAsStream("/examples/f0_example.txt")).parse(); List objects = Util.stripAccessInterface(accesses); Model model = Model.build(objects); AccessInterface rootAccess = bindAccess(this.getRootPath()); rootAccess.set("model", model); StringWriter w = new StringWriter(); new F0Writer(schema, model, new PrintWriterSink(new PrintWriter(w))).write(); rootAccess.set("genotype", w.getBuffer().toString()); } catch (Exception e) { log.error("exception caught: " + e); } //done(); } }