private Engine engine;
protected StandardNodeManager<Node, Engine> nodeManager;
+ private boolean disposed = false;
private Runnable scheduleSyncExec = new Runnable() {
@Override
this.nodeManager = createManager();
}
- abstract protected StandardNodeManager<Node, Engine> createManager();
+ protected StandardNodeManager<Node, Engine> createManager(Node root) {
+ return new StandardNodeManager<Node, Engine>(this, root);
+ }
+
+ protected StandardNodeManager<Node, Engine> createManager() {
+ return createManager(createRootNode());
+ }
+
+ /*
+ * For compatibility reasons. Existing implementations implement createManager() directly and in that case this is not needed.
+ * New implementations should not implement createManager() but rather implement this.
+ */
+ protected Node createRootNode() {
+ throw new UnsupportedOperationException();
+ }
protected String getSCLContextKey() {
return getClass().getSimpleName();
// Clear nodeManager
nodeManager.clear();
nodeManager = null;
+
+ disposed = true;
+
+ }
+
+ public boolean isDisposed() {
+ return disposed;
}
public StandardNodeManager<Node, Engine> getNodeManager() {