1 package org.simantics.modeling.utils;
\r
3 import java.io.IOException;
\r
4 import java.util.LinkedList;
\r
5 import java.util.List;
\r
7 import org.simantics.db.ReadGraph;
\r
8 import org.simantics.db.Resource;
\r
9 import org.simantics.db.common.utils.NameUtils;
\r
10 import org.simantics.db.exception.DatabaseException;
\r
11 import org.simantics.layer0.Layer0;
\r
12 import org.simantics.simulation.ontology.SimulationResource;
\r
14 public class SCLDiagramUtils {
\r
16 public static List<String> path(ReadGraph graph, List<String> additionalPrefix, Resource r) throws DatabaseException, IOException {
\r
17 LinkedList<String> result = new LinkedList<String>();
\r
18 Layer0 L0 = Layer0.getInstance(graph);
\r
19 SimulationResource SIMU = SimulationResource.getInstance(graph);
\r
20 while(!graph.hasStatement(r, SIMU.IsConfigurationOf)) {
\r
21 result.addFirst(NameUtils.getSafeName(graph, r));
\r
22 r = graph.getSingleObject(r, L0.PartOf);
\r
24 for (int i = additionalPrefix.size() - 1; i >= 0; --i)
\r
25 result.addFirst(additionalPrefix.get(i));
\r