1 package org.simantics.modeling.tests.traits;
3 import org.simantics.db.ReadGraph;
4 import org.simantics.db.Resource;
5 import org.simantics.db.common.uri.UnescapedChildMapOfResource;
6 import org.simantics.db.common.utils.NameUtils;
7 import org.simantics.db.exception.DatabaseException;
8 import org.simantics.modeling.ModelingResources;
10 public class DiagramElementTrait extends AbstractSingleResourceTrait {
12 public SingleResourceTrait diagram;
15 public DiagramElementTrait(SingleResourceTrait diagram, String name) {
16 this.diagram = diagram;
21 public Resource getResource(ReadGraph graph) throws DatabaseException {
22 ModelingResources MOD = ModelingResources.getInstance(graph);
23 Resource composite = graph.getSingleObject(diagram.getResource(), MOD.DiagramToComposite);
24 Resource child = graph.sync(new UnescapedChildMapOfResource(composite)).get(name);
25 if(child == null) throw new DatabaseException("No child " + child + " for " + NameUtils.getSafeName(graph, composite));
26 return graph.getSingleObject(child, MOD.ComponentToElement);