X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2Fstate%2FStateNodeManagerSupport.java;fp=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2Fstate%2FStateNodeManagerSupport.java;h=748d4f178902d4fe70c2a17d68ccd94cd7050910;hp=0000000000000000000000000000000000000000;hb=8c8283a01e63980527d605936286747006bea601;hpb=0b65b9e03c2fe0eae91af7a8b87b63df749dc5f9 diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/state/StateNodeManagerSupport.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/state/StateNodeManagerSupport.java new file mode 100644 index 000000000..748d4f178 --- /dev/null +++ b/bundles/org.simantics.document.server/src/org/simantics/document/server/state/StateNodeManagerSupport.java @@ -0,0 +1,57 @@ +package org.simantics.document.server.state; + +import java.util.Collections; +import java.util.Map; + +import org.simantics.databoard.Bindings; +import org.simantics.databoard.binding.Binding; +import org.simantics.simulator.toolkit.StandardNodeManagerSupport; +import org.simantics.simulator.variable.exceptions.NoValueException; +import org.simantics.simulator.variable.exceptions.NodeManagerException; + +public class StateNodeManagerSupport implements StandardNodeManagerSupport { + + @Override + public Object getEngineValue(StateNode node) throws NodeManagerException { + if (node instanceof StatePropertyNode) { + return ((StatePropertyNode) node).getValue(); + } + else throw new NoValueException(); + } + + @Override + public Binding getEngineBinding(StateNode node) throws NodeManagerException { + if (node instanceof StatePropertyNode) { + return Bindings.OBJECT; + } + else throw new NoValueException(); + } + + @Override + public void setEngineValue(StateNode node, Object value) throws NodeManagerException { + if (node instanceof StatePropertyNode) { + ((StatePropertyNode) node).setValue(value); + } + else throw new NodeManagerException(); + } + + @Override + public String getName(StateNode node) { + if (node instanceof StatePropertyNode) { + return ((StatePropertyNode) node).getName(); + } else return "@"; + } + + @Override + public Map getChildren(StateNode node) { + return Collections.emptyMap(); + } + + @Override + public Map getProperties(StateNode node) { + if (node instanceof StateRootNode) { + return ((StateRootNode) node).getProperties(); + } else return Collections.emptyMap(); + } + +}