• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

evolvedbinary / elemental / 982

29 Apr 2025 08:34PM UTC coverage: 56.409% (+0.007%) from 56.402%
982

push

circleci

adamretter
[feature] Improve README.md badges

28451 of 55847 branches covered (50.94%)

Branch coverage included in aggregate %.

77468 of 131924 relevant lines covered (58.72%)

0.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

65.38
/exist-core/src/main/java/org/exist/xquery/value/SequenceComparator.java
1
/*
2
 * Elemental
3
 * Copyright (C) 2024, Evolved Binary Ltd
4
 *
5
 * admin@evolvedbinary.com
6
 * https://www.evolvedbinary.com | https://www.elemental.xyz
7
 *
8
 * Use of this software is governed by the Business Source License 1.1
9
 * included in the LICENSE file and at www.mariadb.com/bsl11.
10
 *
11
 * Change Date: 2028-04-27
12
 *
13
 * On the date above, in accordance with the Business Source License, use
14
 * of this software will be governed by the Apache License, Version 2.0.
15
 *
16
 * Additional Use Grant: Production use of the Licensed Work for a permitted
17
 * purpose. A Permitted Purpose is any purpose other than a Competing Use.
18
 * A Competing Use means making the Software available to others in a commercial
19
 * product or service that: substitutes for the Software; substitutes for any
20
 * other product or service we offer using the Software that exists as of the
21
 * date we make the Software available; or offers the same or substantially
22
 * similar functionality as the Software.
23
 */
24
package org.exist.xquery.value;
25

26
import com.ibm.icu.text.Collator;
27
import net.jcip.annotations.NotThreadSafe;
28
import org.apache.logging.log4j.LogManager;
29
import org.apache.logging.log4j.Logger;
30
import org.exist.http.RESTServer;
31

32
import javax.annotation.Nullable;
33
import java.util.Comparator;
34

35
/**
36
 * @author <a href="mailto:adam@evolvedbinary.com">Adam Retter</a>
37
 */
38
@NotThreadSafe
39
public class SequenceComparator implements Comparator<Sequence> {
40

41
    protected static final Logger LOG = LogManager.getLogger(RESTServer.class);
1✔
42

43
    private final @Nullable Collator collator;
44
    private @Nullable ItemComparator itemComparator = null;
1✔
45

46
    public SequenceComparator() {
47
        this(null);
×
48
    }
×
49

50
    public SequenceComparator(@Nullable final Collator collator) {
1✔
51
        this.collator = collator;
1✔
52
    }
1✔
53

54
    @Override
55
    public int compare(final Sequence o1, final Sequence o2) {
56
        if (o1 == null && o2 == null) {
1!
57
            return 0;
×
58
        } else if (o1 == null) {
1!
59
            return -1;
×
60
        } else if (o2 == null) {
1!
61
            return 1;
×
62
        }
63

64
        final int o1Count = o1.getItemCount();
1✔
65
        final int o2Count = o1.getItemCount();
1✔
66

67
        if (o1Count < o2Count) {
1!
68
            return -1;
×
69
        } else if(o1Count > o2Count) {
1!
70
            return 1;
×
71
        } else if (o1Count == 0 && o1Count == o2Count) {
1!
72
            return 0;
×
73
        }
74

75
        for (int i = 0; i < o1Count; i++) {
1✔
76
            if (itemComparator == null) {
1✔
77
                itemComparator = new ItemComparator(collator);
1✔
78
            }
79

80
            final Item i1 = o1.itemAt(i);
1✔
81
            final Item i2 = o2.itemAt(i);
1✔
82
            final int result = itemComparator.compare(i1, i2);
1✔
83
            if (result != 0) {
1✔
84
                return result;
1✔
85
            }
86
        }
87

88
        return 0;
1✔
89
    }
90
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc