1 package org.simantics.document.linking.report.templates;
5 import org.simantics.db.ReadGraph;
6 import org.simantics.db.Resource;
7 import org.simantics.document.linking.ontology.DocumentLink;
8 import org.simantics.modeling.ModelingResources;
10 class SourceParentDiagramComparator extends ResourceNameComparator {
12 ModelingResources mod;
14 public SourceParentDiagramComparator(ReadGraph graph, Resource model) {
16 sl = DocumentLink.getInstance(graph);
17 mod = ModelingResources.getInstance(graph);
22 public int compare(Resource o1, Resource o2) {
24 Resource r1 = graph.getSingleObject(o1, sl.hasSource_Inverse);
25 Resource r2 = graph.getSingleObject(o2, sl.hasSource_Inverse);
26 List<Resource> path1 = getPath(r1);
27 List<Resource> path2 = getPath(r2);
30 for (int i = path1.size() -1; i >= 0; i--) {
31 if (graph.hasStatement(path1.get(i),mod.CompositeToDiagram)) {
36 for (int i = path2.size() -1; i >= 0; i--) {
37 if (graph.hasStatement(path2.get(i),mod.CompositeToDiagram)) {
42 int count = Math.min(diag1, diag2);
46 for (; i <= count; i++) {
47 comp = super.compare(path1.get(i), path2.get(i));
53 } catch (Exception e) {