From ceeae4836634e84807770e76f383c4da01b41817 Mon Sep 17 00:00:00 2001 From: stephane <stephane.dervaux@inrae.fr> Date: Wed, 3 Apr 2024 15:45:08 +0200 Subject: [PATCH] =?UTF-8?q?si=20on=20compare=20une=20=C3=A9tape=20m=C3=A8r?= =?UTF-8?q?e,=20alors=20on=20prends=20sa=20premiere=20=C3=A9tape=20fille?= =?UTF-8?q?=20pour=20la=20comparaison?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/inra/po2vocabmanager/model/DataNode.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java b/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java index 93989b87..24f6f344 100644 --- a/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java +++ b/src/main/java/fr/inra/po2vocabmanager/model/DataNode.java @@ -257,11 +257,19 @@ public class DataNode implements Comparable<DataNode> { if(o == null) return 0; if(this.getType().equals(DataNodeType.STEP) && o.getType().equals(DataNodeType.STEP)) { // order by temporality - if(this.getItineraryFile() != null) { - if(getItineraryFile().isLinked((StepFile)this.getFile(),(StepFile)o.getFile())) { + StepFile current = (StepFile)this.getFile(); + StepFile otherStep = (StepFile)o.getFile(); + if(!current.isLeaf()) { + current = current.getSubStep().stream().findFirst().orElse(null); + } + if(!otherStep.isLeaf()) { + otherStep = otherStep.getSubStep().stream().findFirst().orElse(null); + } + if( current != null && otherStep != null && this.getItineraryFile() != null) { + if(getItineraryFile().isLinked(current,otherStep)) { return -1; } else { - if(getItineraryFile().isLinked((StepFile)o.getFile(), (StepFile)this.getFile())) { + if(getItineraryFile().isLinked(otherStep, current)) { return 1; } } -- GitLab