]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling/src/org/simantics/modeling/utils/SCLDiagramUtils.java
Layer0Utils.addL0Identifier to prevent possible differentiation of code
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / utils / SCLDiagramUtils.java
1 package org.simantics.modeling.utils;
2
3 import java.io.IOException;
4 import java.util.LinkedList;
5 import java.util.List;
6
7 import org.simantics.db.ReadGraph;
8 import org.simantics.db.Resource;
9 import org.simantics.db.common.utils.NameUtils;
10 import org.simantics.db.exception.DatabaseException;
11 import org.simantics.layer0.Layer0;
12 import org.simantics.simulation.ontology.SimulationResource;
13
14 public class SCLDiagramUtils {
15
16     public static List<String> path(ReadGraph graph, List<String> additionalPrefix, Resource r) throws DatabaseException, IOException {
17         LinkedList<String> result = new LinkedList<String>();
18         Layer0 L0 = Layer0.getInstance(graph);
19         SimulationResource SIMU = SimulationResource.getInstance(graph);
20         while(!graph.hasStatement(r, SIMU.IsConfigurationOf)) {
21             result.addFirst(NameUtils.getSafeName(graph, r));
22             r = graph.getSingleObject(r, L0.PartOf);
23         }
24         for (int i = additionalPrefix.size() - 1; i >= 0; --i)
25             result.addFirst(additionalPrefix.get(i));
26         return result;
27     }
28     
29 }