package org.lemsml.jruntime; import java.util.ArrayList; import java.util.HashMap; import org.lemsml.jlems.core.display.LineDisplay; import org.lemsml.jlems.core.logging.E; import org.lemsml.jlems.core.run.ConnectionError; import org.lemsml.jlems.core.run.DoublePointer; import org.lemsml.jlems.core.run.GeneratedInstance; import org.lemsml.jlems.core.run.InPort; import org.lemsml.jlems.core.run.InstanceSet; import org.lemsml.jlems.core.run.MultiInstance; import org.lemsml.jlems.core.run.OutPort; import org.lemsml.jlems.core.run.RuntimeError; import org.lemsml.jlems.core.run.StateInstance; import org.lemsml.jlems.core.run.StateRunnable; import org.lemsml.jlems.core.run.StateWrapper; import org.lemsml.jlems.core.sim.ContentError; public class NativeWrapper implements StateRunnable { GeneratedInstance target; NativeType nativeType; public NativeWrapper(GeneratedInstance geninst, NativeType nt) { target = geninst; nativeType = nt; } @Override public void advance(StateRunnable parent, double t, double dt) throws RuntimeError, ContentError { long wkTime = 0; if (nativeType.trackTime) { wkTime = System.nanoTime(); } HashMap<String, DoublePointer> vars = parent.getVariables(); target.advance(t, dt, vars); if (nativeType.trackTime) { nativeType.addTime(System.nanoTime() - wkTime); } } @Override public double getVariable(String varname) throws RuntimeError { return target.getVariable(varname); } @Override public StateRunnable getChild(String snm) throws ConnectionError { E.missing("Native wrapper"); return null; } @Override public void exportState(String pfx, double t, LineDisplay ld) { E.missing("Native wrapper"); } @Override public InPort getFirstInPort() throws ConnectionError { E.missing("Native wrapper"); return null; } @Override public InPort getInPort(String portId) throws ConnectionError { E.missing("Native wrapper"); return null; } @Override public StateWrapper getWrapper(String string) { E.missing("Native wrapper"); return null; } @Override public HashMap<String, DoublePointer> getVariables() { E.missing("Native wrapper"); return null; } @Override public String stateString() { E.missing("Native wrapper"); return null; } @Override public void setVariable(String varname, double d) { E.missing("Native wrapper"); } @Override public String getID() { E.missing("Native wrapper"); return null; } @Override public void setNewVariable(String string, double d) { E.missing("Native wrapper"); } @Override public void evaluate(StateRunnable parent) throws RuntimeError, ContentError { E.missing("Native wrapper"); } @Override public void initialize(StateRunnable sr) throws RuntimeError, ContentError { //E.missing("Native wrapper"); // TODO - nothing to do here? } @Override public Object getComponentID() { E.missing("Native wrapper"); return null; } @Override public boolean hasChildInstance(String string) { E.missing("Native wrapper"); return true; } @Override public StateRunnable getChildInstance(String string) throws ContentError { E.missing("Native wrapper"); return null; } @Override public ArrayList<StateRunnable> quietGetStateInstances(String path) throws ConnectionError, ContentError, RuntimeError { E.missing("Native wrapper"); return null; } @Override public void setParent(StateRunnable par) { // shouldn't need this? } @Override public ArrayList<StateRunnable> getStateInstances() throws ConnectionError, ContentError, RuntimeError { E.missing("Native wrapper"); return null; } @Override public void checkBuilt() throws ConnectionError, ContentError, RuntimeError { // not needed } @Override public StateRunnable getScopeInstance(String id) { E.missing("Native wrapper"); return null; } @Override public ArrayList<StateRunnable> getPathInstances(String sel) throws ContentError, ConnectionError, RuntimeError { E.missing("Native wrapper"); return null; } @Override public double quietGetFloatProperty(String sel) throws ContentError { E.missing("Native wrapper"); return 0; } @Override public boolean hasSingleMI() { E.missing("Native wrapper"); return false; } @Override public OutPort getOutPort(String sourcePortId) { E.missing("Native wrapper"); return null; } @Override public StateRunnable getPathStateInstance(String path) throws ContentError { E.missing("Native wrapper"); return null; } @Override public OutPort getFirstOutPort() { E.missing("Native wrapper"); return null; } @Override public StateRunnable getParent() { E.missing("Native wrapper"); return null; } @Override public InstanceSet<StateRunnable> getUniqueInstanceSet() throws ContentError { E.missing("Native wrapper"); return null; } @Override public InstanceSet<StateRunnable> getInstanceSet(String col) { E.missing("Native wrapper"); return null; } @Override public Object getWork() { E.missing("Native wrapper"); return null; } @Override public ArrayList<StateRunnable> getStateInstances(String path) throws ConnectionError, ContentError, RuntimeError { E.missing("Native wrapper"); return null; } @Override public double getFloatProperty(String sel) throws ContentError { E.missing("Native wrapper"); return 0; } @Override public String getPathStringValue(String fieldName, double fac, double off) throws ContentError, RuntimeError { E.missing("Native wrapper"); return null; } @Override public void addAttachment(String destAttachments, StateInstance rsi) throws ConnectionError, ContentError, RuntimeError { E.missing("Native wrapper"); } @Override public MultiInstance getSingleMI() { E.missing("Native wrapper"); return null; } @Override public void setList(String childrenName) { // TODO Auto-generated method stub } @Override public String getChildSummary() { // TODO Auto-generated method stub return null; } @Override public boolean isBuilt() { // TODO Auto-generated method stub return true; } @Override public void addAttachment(StateInstance rsi) throws ConnectionError, ContentError, RuntimeError { // TODO Auto-generated method stub } @Override public String getDimensionString(String lastbit) { E.missing(); return null; } }