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%2Futil%2FLayer0Utils.java;fp=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Futil%2FLayer0Utils.java;h=538f22478d00f1708a4b0c89e2059adae754f1a4;hp=888e5fe4e312af10d98af326966b6e2ad42e7894;hb=4cfeb52c28469fdfb6d8b07bac43394bac684e7f;hpb=74de2d9be56f36e925a0a5818f4b11a766812cff diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java index 888e5fe4e..538f22478 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/Layer0Utils.java @@ -23,6 +23,7 @@ import java.util.Set; import java.util.TreeSet; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.SubMonitor; import org.simantics.databoard.Bindings; import org.simantics.databoard.Datatypes; @@ -1234,6 +1235,10 @@ public class Layer0Utils { return Layer0.getInstance(graph).String; } + public static void emptyTrashBin() throws ServiceException { + emptyTrashBin(new NullProgressMonitor()); + } + public static void emptyTrashBin(IProgressMonitor monitor) throws ServiceException { emptyTrashBin(monitor, SimanticsInternal.getSession(), SimanticsInternal.getProject()); } @@ -1281,15 +1286,31 @@ public class Layer0Utils { return; mon.subTask("Purging Database"); mon.newChild(1000); - XSupport xs = session.getService(XSupport.class); - xs.purge(); + purgeDatabase(monitor, session); } catch (CancelTransactionException e) { // Ignore. } catch (DatabaseException e) { throw new ServiceException(e); } } - + + public static void purgeDatabase() throws ServiceException { + purgeDatabase(new NullProgressMonitor()); + } + + public static void purgeDatabase(final IProgressMonitor monitor) throws ServiceException { + purgeDatabase(monitor, SimanticsInternal.getSession()); + } + + public static void purgeDatabase(final IProgressMonitor monitor, Session session) throws ServiceException { + try { + XSupport xs = session.getService(XSupport.class); + xs.purge(); + } catch (DatabaseException e) { + throw new ServiceException(e); + } + } + public static Resource getSingleDomainOf(ReadGraph graph, Resource type, Resource target) throws DatabaseException { Resource result = null; for(Resource candidate : getDomainOf(graph, type).values()) {