diff options
Diffstat (limited to 'plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java')
-rw-r--r-- | plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java index 5e998094723..8bfe1acd774 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/relation/RelationManager.java @@ -365,7 +365,15 @@ public class RelationManager { return null; } + public static List<RelationLink> getRelationsUnordered(Artifact artifact, IRelationType relationType, RelationSide relationSide) throws OseeCoreException { + return getRelations(artifact, relationType, relationSide, false); + } + public static List<RelationLink> getRelations(Artifact artifact, IRelationType relationType, RelationSide relationSide) throws OseeCoreException { + return getRelations(artifact, relationType, relationSide, true); + } + + public static List<RelationLink> getRelations(Artifact artifact, IRelationType relationType, RelationSide relationSide, boolean sort) throws OseeCoreException { if (artifact.isHistorical()) { throw new OseeCoreException("Artifact [%s] is historical. Historical relations are only supported on server", artifact); @@ -392,6 +400,9 @@ public class RelationManager { } } } + if (sort) { + sortRelations(artifact, relationType, relationSide, relations); + } return relations; } @@ -576,6 +587,14 @@ public class RelationManager { sorter.sort(listToOrder); } + private static void sortRelations(Artifact artifact, IRelationType type, RelationSide side, List<RelationLink> listToOrder) throws OseeCoreException { + if (type == null || side == null || listToOrder.size() <= 1) { + return; + } + RelationTypeSideSorter sorter = createTypeSideSorter(artifact, type, side); + sorter.sortRelations(listToOrder); + } + private static void updateOrderListOnDelete(Artifact artifact, IRelationType relationType, RelationSide relationSide, List<Artifact> relatives) throws OseeCoreException { RelationTypeSideSorter sorter = createTypeSideSorter(artifact, relationType, relationSide); sorter.setOrder(relatives, sorter.getSorterId()); |