Skip to content

Commit b5814ca

Browse files
[MIN] SeqBuilder (minor)
1 parent af9eea0 commit b5814ca

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

basex-core/src/main/java/org/basex/query/value/seq/SeqBuilder.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,25 @@ public abstract class SeqBuilder {
1818
* @param item item to append
1919
* @return reference to this builder for convenience
2020
*/
21-
public abstract SeqBuilder add(Item item);
21+
protected abstract SeqBuilder add(Item item);
2222

2323
/**
2424
* Appends items.
2525
* @param value items to append
2626
* @param job interruptible job
2727
* @return this builder for convenience
2828
*/
29-
public SeqBuilder add(final Value value, final Job job) {
29+
public final SeqBuilder add(final Value value, final Job job) {
30+
return value.size() == 1 ? add((Item) value) : addSequence(value, job);
31+
}
32+
33+
/**
34+
* Appends a sequence.
35+
* @param value items to append
36+
* @param job interruptible job
37+
* @return this builder for convenience
38+
*/
39+
protected SeqBuilder addSequence(final Value value, final Job job) {
3040
SeqBuilder sb = this;
3141
for(final Item item : value) {
3242
job.checkStop();
@@ -48,7 +58,7 @@ public SeqBuilder add(final Value value, final Job job) {
4858
* @param job interruptible job
4959
* @return tree sequence builder
5060
*/
51-
protected final TreeSeqBuilder tree(final Item item, final Job job) {
61+
protected final SeqBuilder tree(final Item item, final Job job) {
5262
return new TreeSeqBuilder().add(value(null), job).add(item);
5363
}
5464
}

basex-core/src/main/java/org/basex/query/value/seq/tree/TreeSeqBuilder.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.basex.query.value.seq.tree;
22

33
import org.basex.core.jobs.*;
4-
import org.basex.query.iter.*;
54
import org.basex.query.util.fingertree.*;
65
import org.basex.query.value.*;
76
import org.basex.query.value.item.*;
@@ -69,7 +68,7 @@ public TreeSeqBuilder prepend(final Item item) {
6968
}
7069

7170
@Override
72-
public TreeSeqBuilder add(final Item item) {
71+
protected TreeSeqBuilder add(final Item item) {
7372
if(inRight < TreeSeq.MAX_DIGIT) {
7473
// just insert the item
7574
items[(mid + inRight) % CAP] = item;
@@ -96,13 +95,9 @@ public TreeSeqBuilder add(final Item item) {
9695
}
9796

9897
@Override
99-
public TreeSeqBuilder add(final Value value, final Job job) {
100-
// shortcut for adding single items
101-
if(value.size() == 1) return add((Item) value);
102-
98+
protected SeqBuilder addSequence(final Value value, final Job job) {
10399
if(!(value instanceof final BigSeq big)) {
104-
final BasicIter<?> iter = value.iter();
105-
for(Item item; (item = iter.next()) != null;) {
100+
for(final Item item : value) {
106101
job.checkStop();
107102
add(item);
108103
}

0 commit comments

Comments
 (0)