MCPcopy Create free account
hub / github.com/BaseXdb/basex / merge

Method merge

basex-core/src/main/java/org/basex/query/util/regex/Escape.java:117–131  ·  view source on GitHub ↗

Merges codepoint ranges. @param rss ranges @return merged ranges

(final int[][]... rss)

Source from the content-addressed store, hash-verified

115 * @return merged ranges
116 */
117 private static int[][] merge(final int[][]... rss) {
118 final ArrayList<int[]> ranges = new ArrayList<>();
119 for(final int[][] rs : rss) Collections.addAll(ranges, rs);
120 ranges.sort(CMP);
121 for(int i = 0; i < ranges.size(); i++) {
122 final int[] rng = ranges.get(i);
123 while(i + 1 < ranges.size()) {
124 final int[] rng2 = ranges.get(i + 1);
125 if(rng2[0] - rng[1] > 1) break;
126 rng[1] = rng2[1];
127 ranges.remove(i + 1);
128 }
129 }
130 return ranges.toArray(int[][]::new);
131 }
132
133 /**
134 * Inverts code point ranges.

Callers 2

addMethod · 0.95
EscapeClass · 0.95

Calls 6

sizeMethod · 0.65
getMethod · 0.65
removeMethod · 0.65
addAllMethod · 0.45
sortMethod · 0.45
toArrayMethod · 0.45

Tested by

no test coverage detected