1 package org.simantics.document.linking.report.templates;
\r
3 import java.util.List;
\r
5 import org.simantics.db.ReadGraph;
\r
6 import org.simantics.db.Resource;
\r
7 import org.simantics.document.linking.ontology.DocumentLink;
\r
9 class SourceParentHierarchyWithPropComparator extends ResourceNameComparator {
\r
12 public SourceParentHierarchyWithPropComparator(ReadGraph graph, Resource model) {
\r
14 sl = DocumentLink.getInstance(graph);
\r
17 public int compare(Resource o1, Resource o2) {
\r
19 Resource r1 = graph.getSingleObject(o1, sl.hasSource_Inverse);
\r
20 Resource r2 = graph.getSingleObject(o2, sl.hasSource_Inverse);
\r
21 List<Resource> path1 = getPath(r1);
\r
22 List<Resource> path2 = getPath(r2);
\r
23 int count = Math.min(path1.size(), path2.size());
\r
26 for (; i < count; i++) {
\r
27 comp = super.compare(path1.get(i), path2.get(i));
\r
31 if (path1.size() < path2.size())
\r
33 else if (path2.size() > path1.size())
\r
36 Resource rel1 = graph.getPossibleObject(o1, sl.consernsRelation);
\r
37 Resource rel2 = graph.getPossibleObject(o2, sl.consernsRelation);
\r
40 return super.compare(rel1,rel2);
\r
42 } else if (rel2 != null)
\r
46 } catch (Exception e) {
\r