X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Futil%2FDatabaseExceptionUtils.java;fp=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Futil%2FDatabaseExceptionUtils.java;h=2368713548a7dc54788c87ea8eaba231c7fc1dd1;hb=c0f7ddd4760befeb8e9114e4a93c04df2c2d1f00;hp=0000000000000000000000000000000000000000;hpb=6e2d3bc019eb7bcf8a75c8ea6f5f2cfadd159359;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/DatabaseExceptionUtils.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/DatabaseExceptionUtils.java new file mode 100644 index 000000000..236871354 --- /dev/null +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/DatabaseExceptionUtils.java @@ -0,0 +1,36 @@ +package org.simantics.db.layer0.util; + +import org.simantics.db.ReadGraph; +import org.simantics.db.RequestProcessor; +import org.simantics.db.Resource; +import org.simantics.db.common.request.UniqueRead; +import org.simantics.db.common.utils.NameUtils; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.internal.SimanticsInternal; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class DatabaseExceptionUtils { + + private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseExceptionUtils.class); + + public static String showResource(Resource resource) { + return showResource(SimanticsInternal.getSession(), resource); + } + + public static String showResource(RequestProcessor processor, Resource resource) { + try { + return processor.syncRequest(new UniqueRead() { + + @Override + public String perform(ReadGraph graph) throws DatabaseException { + return NameUtils.getURIOrSafeNameInternal(graph, resource); + } + }); + } catch (DatabaseException e) { + LOGGER.error("Unknown error while evaluating debug name for a resource " + resource, e); + return resource.toString(); + } + } + +}