X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=statesystem%2Forg.eclipse.tracecompass.segmentstore.core%2Fsrc%2Forg%2Feclipse%2Ftracecompass%2Fsegmentstore%2Fcore%2FISegment.java;h=eff096573ab314292ec92bfd0ffd3e5259d6285c;hb=f1c52947bc91053684993c98e10672c1b4549531;hp=e82cf387d8322b42e11f469a546f82695f536627;hpb=87dd36aa26d4e1a98a626a38b733db149a6d1b9b;p=deliverable%2Ftracecompass.git diff --git a/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/ISegment.java b/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/ISegment.java index e82cf387d8..eff096573a 100644 --- a/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/ISegment.java +++ b/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/ISegment.java @@ -14,13 +14,15 @@ package org.eclipse.tracecompass.segmentstore.core; import java.io.Serializable; +import org.eclipse.jdt.annotation.NonNull; + /** * Generic interface for any segment (like a time range) that can be used in the * segment store. * * @author Alexandre Montplaisir */ -public interface ISegment extends Serializable, Comparable { +public interface ISegment extends Serializable, Comparable<@NonNull ISegment> { /** * The start position/time of the segment. @@ -36,6 +38,13 @@ public interface ISegment extends Serializable, Comparable { */ long getEnd(); + @Override + default int compareTo(@NonNull ISegment arg0) { + return SegmentComparators.INTERVAL_START_COMPARATOR + .thenComparing(SegmentComparators.INTERVAL_END_COMPARATOR) + .compare(this, arg0); + } + /** * The length/duration of the segment. *