Deveel.Data.Index.IndexRangeSet.IntersectedBy C# (CSharp) Méthode

IntersectedBy() private static méthode

Returns true if the two SelectableRange ranges intersect.
private static IntersectedBy ( IndexRange range1, IndexRange range2 ) : bool
range1 IndexRange
range2 IndexRange
Résultat bool
        private static bool IntersectedBy(IndexRange range1, IndexRange range2)
        {
            var startFlag1 = range1.StartOffset;
            var start1 = range1.StartValue;
            var endFlag1 = range1.EndOffset;
            var end1 = range1.EndValue;

            var startFlag2 = range2.StartOffset;
            var start2 = range2.StartValue;
            var endFlag2 = range2.EndOffset;
            var end2 = range2.EndValue;

            var startCell1 = start1.Equals(IndexRange.FirstInSet) ? null : start1;
            var endCell1 = end1.Equals(IndexRange.LastInSet) ? null : end1;
            var startCell2 = start2.Equals(IndexRange.FirstInSet) ? null : start2;
            var endCell2 = end2.Equals(IndexRange.LastInSet) ? null : end2;

            bool intersect1 = false;
            if (startCell1 != null && endCell2 != null) {
                int c = startCell1.CompareTo(endCell2);
                if (c < 0 ||
                    (c == 0 && (startFlag1 == RangeFieldOffset.FirstValue ||
                                endFlag2 == RangeFieldOffset.LastValue))) {
                    intersect1 = true;
                }
            } else {
                intersect1 = true;
            }

            bool intersect2 = false;
            if (startCell2 != null && endCell1 != null) {
                int c = startCell2.CompareTo(endCell1);
                if (c < 0 ||
                    (c == 0 && (startFlag2 == RangeFieldOffset.FirstValue ||
                                endFlag1 == RangeFieldOffset.LastValue))) {
                    intersect2 = true;
                }
            } else {
                intersect2 = true;
            }

            return (intersect1 && intersect2);
        }