]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.server/src/org/simantics/document/server/state/StateRealm.java
New implementation of server state based on StandardNodeManager
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / state / StateRealm.java
1 package org.simantics.document.server.state;
2
3 import java.util.function.Function;
4
5 import org.simantics.simulator.toolkit.StandardNodeManager;
6 import org.simantics.simulator.toolkit.StandardRealm;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 public class StateRealm extends StandardRealm<StateNode, StateNodeManagerSupport> {
11
12         private static final Logger LOGGER = LoggerFactory.getLogger(StateRealm.class);
13
14         protected StateRealm(StateNodeManagerSupport engine, String id) {
15                 super(engine, id);
16         }
17
18         @Override
19         public Logger getLogger() {
20                 return LOGGER;
21         }
22
23         @Override
24         protected StandardNodeManager<StateNode, StateNodeManagerSupport> createManager() {
25                 return new StateNodeManager(this, new StateRootNode());
26         }
27
28         @Override
29         public void asyncExec(Function fun) {
30                 try {
31                         syncExec(fun);
32                 } catch (InterruptedException e) {
33                         LOGGER.error("Execution interrupted.", e);
34                 }
35         }
36
37         @Override
38         public void asyncExec(Runnable runnable) {
39                 try {
40                         syncExec(runnable);
41                 } catch (InterruptedException e) {
42                         LOGGER.error("Execution interrupted.", e);
43                 }
44         }
45
46 }