--- /dev/null
+package org.simantics.workbench.search;\r
+\r
+import org.simantics.NameLabelUtil;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.ServiceLocator;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.service.SerialisationSupport;\r
+\r
+/**\r
+ * @author Tuukka Lehtonen\r
+ */\r
+public class NamedResource {\r
+\r
+ private final String resource;\r
+ private final String name;\r
+ private final String uri;\r
+\r
+ public static NamedResource of(ReadGraph graph, Resource resource) throws DatabaseException {\r
+ return of(graph, resource, NameLabelUtil.modalName(graph, resource));\r
+ }\r
+\r
+ public static NamedResource of(ReadGraph graph, Resource resource, String name) throws DatabaseException {\r
+ return of(graph, resource, name, graph.getPossibleURI(resource));\r
+ }\r
+\r
+ public static NamedResource of(ServiceLocator locator, Resource resource, String name, String uri) throws DatabaseException {\r
+ SerialisationSupport ss = locator.getService(SerialisationSupport.class);\r
+ return new NamedResource("" + ss.getRandomAccessId(resource), name, uri);\r
+ }\r
+\r
+ public NamedResource(String resource, String name) {\r
+ this(resource, name, null);\r
+ }\r
+\r
+ public NamedResource(String resource, String name, String uri) {\r
+ this.resource = resource;\r
+ this.name = name;\r
+ this.uri = uri;\r
+ }\r
+\r
+ public String getResource() {\r
+ return resource;\r
+ }\r
+\r
+ public String getName() {\r
+ return name;\r
+ }\r
+\r
+ public String getUri() {\r
+ return uri;\r
+ }\r
+\r
+}\r