1 package org.simantics.db.layer0.adapter;
\r
3 import org.simantics.db.Resource;
\r
4 import org.simantics.db.WriteGraph;
\r
5 import org.simantics.db.exception.DatabaseException;
\r
6 import org.simantics.db.layer0.adapter.impl.EntityRemover;
\r
7 import org.simantics.db.layer0.exception.CannotRemoveException;
\r
8 import org.simantics.db.layer0.internal.SimanticsInternal;
\r
9 import org.simantics.db.layer0.request.ProjectModels;
\r
10 import org.simantics.db.layer0.util.Layer0Utils;
\r
11 import org.simantics.layer0.Layer0;
\r
14 * @author Tuukka Lehtonen
\r
16 public class SharedOntologyRemover extends EntityRemover {
\r
18 public SharedOntologyRemover(Resource resource) {
\r
23 public void remove(WriteGraph graph) throws DatabaseException {
\r
25 Layer0 L0 = Layer0.getInstance(graph);
\r
27 for(Resource ontology : Layer0Utils.listOntologies(graph)) {
\r
28 if(graph.hasStatement(ontology, L0.IsLinkedTo, resource))
\r
29 throw new CannotRemoveException("The shared library is being referenced by " + graph.getURI(ontology));
\r
32 for(Resource model : graph.syncRequest(new ProjectModels(SimanticsInternal.getProject()))) {
\r
33 if(graph.hasStatement(model, L0.IsLinkedTo, resource))
\r
34 throw new CannotRemoveException("The shared library is being referenced by " + graph.getURI(model));
\r
37 super.remove(graph);
\r