]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/DatabaseExceptionUtils.java
Define actions already in L0
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / util / DatabaseExceptionUtils.java
1 package org.simantics.db.layer0.util;
2
3 import org.simantics.db.ReadGraph;
4 import org.simantics.db.RequestProcessor;
5 import org.simantics.db.Resource;
6 import org.simantics.db.common.request.UniqueRead;
7 import org.simantics.db.common.utils.NameUtils;
8 import org.simantics.db.exception.DatabaseException;
9 import org.simantics.db.layer0.internal.SimanticsInternal;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12
13 public class DatabaseExceptionUtils {
14
15     private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseExceptionUtils.class);
16
17     public static String showResource(Resource resource) {
18         return showResource(SimanticsInternal.getSession(), resource);
19     }
20
21     public static String showResource(RequestProcessor processor, Resource resource) {
22         try {
23             return processor.syncRequest(new UniqueRead<String>() {
24
25                 @Override
26                 public String perform(ReadGraph graph) throws DatabaseException {
27                     return NameUtils.getURIOrSafeNameInternal(graph, resource);
28                 }
29             });
30         } catch (DatabaseException e) {
31             LOGGER.error("Unknown error while evaluating debug name for a resource " + resource, e);
32             return resource.toString();
33         }
34     }
35
36 }