X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Fvariable%2FNodeSupport.java;h=3ac88ae6769eb24bea768ac66077a502864dced2;hp=79bc4eb5ee2926e52c6cce934c80382651ee2357;hb=6da46379296ecec681d6b72d053f82f637ed1c3c;hpb=3fe6778c21d6437e90d08987de6dae7bca89bc6d diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeSupport.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeSupport.java index 79bc4eb5e..3ac88ae67 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeSupport.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/NodeSupport.java @@ -5,6 +5,8 @@ import java.util.concurrent.TimeUnit; import org.simantics.databoard.binding.mutable.Variant; import org.simantics.db.layer0.variable.Variables.NodeStructure; import org.simantics.simulator.variable.NodeManager; +import org.simantics.simulator.variable.exceptions.NoValueException; +import org.simantics.simulator.variable.exceptions.NodeManagerException; /** * @author Antti Villberg @@ -55,6 +57,18 @@ public class NodeSupport { && manager.equals(other.manager); } + public void refreshCache(Node node) throws NodeManagerException { + VariableNode variableNode = new VariableNode<>(this, node); + NodeStructure ns = NodeStructureRequest.get(variableNode); + structureCache.put(node, ns); + try { + Variant value = manager.getValue(node); + valueCache.put(node, value); + } catch (NoValueException e) { + valueCache.remove(node); + }; + } + public void dispose() { valueCache.dispose(); structureCache.dispose();