-package org.simantics.spreadsheet.graph.adapter;\r
-\r
-import java.util.Map;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.layer0.adapter.impl.EntityRemover;\r
-import org.simantics.spreadsheet.graph.SpreadsheetSessionManager;\r
-\r
-public class SpreadsheetBookRemover extends EntityRemover {\r
-\r
- public SpreadsheetBookRemover(Resource resource) {\r
- super(resource);\r
- }\r
- \r
- @Override\r
- public String canRemove(ReadGraph graph, Map<Object, Object> aux) throws DatabaseException {\r
- return super.canRemove(graph, aux);\r
- }\r
- \r
- @Override\r
- public void remove(WriteGraph graph) throws DatabaseException {\r
- \r
- String bookURI = graph.getURI(resource);\r
- for (String realmId : SpreadsheetSessionManager.getInstance().getRealms()) {\r
- if (realmId.startsWith(bookURI)) {\r
- SpreadsheetSessionManager.getInstance().removeRealm(realmId);\r
- }\r
- }\r
- super.remove(graph);\r
- \r
- }\r
-\r
-}\r
+package org.simantics.spreadsheet.graph.adapter;
+
+import java.util.Map;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.impl.EntityRemover;
+import org.simantics.spreadsheet.graph.SpreadsheetSessionManager;
+
+public class SpreadsheetBookRemover extends EntityRemover {
+
+ public SpreadsheetBookRemover(Resource resource) {
+ super(resource);
+ }
+
+ @Override
+ public String canRemove(ReadGraph graph, Map<Object, Object> aux) throws DatabaseException {
+ return super.canRemove(graph, aux);
+ }
+
+ @Override
+ public void remove(WriteGraph graph) throws DatabaseException {
+
+ String bookURI = graph.getPossibleURI(resource);
+ if (bookURI != null) {
+ for (String realmId : SpreadsheetSessionManager.getInstance().getRealms()) {
+ if (realmId.startsWith(bookURI)) {
+ SpreadsheetSessionManager.getInstance().removeRealm(graph, realmId);
+ }
+ }
+ }
+ super.remove(graph);
+
+ }
+
+}