Skip to content

Commit 350804d

Browse files
committed
Changing hasIncompleteVersionstamp to use iteration rather than stream processing
1 parent 59cdb8a commit 350804d

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

bindings/java/src/main/com/apple/foundationdb/tuple/Tuple.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ private Tuple(Tuple original, Object newItem, boolean itemHasIncompleteVersionst
8686

8787
private Tuple(List<Object> elements) {
8888
this.elements = elements;
89-
incompleteVersionstamp = TupleUtil.hasIncompleteVersionstamp(elements.stream());
89+
incompleteVersionstamp = TupleUtil.hasIncompleteVersionstamp(elements);
9090
}
9191

9292
/**
@@ -265,7 +265,7 @@ public Tuple add(Versionstamp v) {
265265
* @return a newly created {@code Tuple}
266266
*/
267267
public Tuple add(List<?> l) {
268-
return new Tuple(this, l, TupleUtil.hasIncompleteVersionstamp(l.stream()));
268+
return new Tuple(this, l, TupleUtil.hasIncompleteVersionstamp(l));
269269
}
270270

271271
/**

bindings/java/src/main/com/apple/foundationdb/tuple/TupleUtil.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -776,24 +776,23 @@ else if(item instanceof Tuple)
776776
return packedSize;
777777
}
778778

779-
static boolean hasIncompleteVersionstamp(Stream<?> items) {
780-
return items.anyMatch(item -> {
781-
if(item == null) {
782-
return false;
779+
static boolean hasIncompleteVersionstamp(Collection<?> items){
780+
boolean isComplete = true;
781+
for(Object itm: items){
782+
if(itm instanceof Versionstamp){
783+
isComplete = ((Versionstamp)itm).isComplete();
784+
}else if(itm instanceof Tuple){
785+
isComplete = hasIncompleteVersionstamp(((Tuple)itm).getItems());
786+
}else if(itm instanceof Collection<?>){
787+
isComplete = hasIncompleteVersionstamp((Collection<?>)itm);
783788
}
784-
else if(item instanceof Versionstamp) {
785-
return !((Versionstamp) item).isComplete();
786-
}
787-
else if(item instanceof Tuple) {
788-
return hasIncompleteVersionstamp(((Tuple) item).stream());
789-
}
790-
else if(item instanceof Collection<?>) {
791-
return hasIncompleteVersionstamp(((Collection<?>) item).stream());
792-
}
793-
else {
794-
return false;
789+
790+
791+
if(!isComplete){
792+
break;
795793
}
796-
});
794+
}
795+
return !isComplete;
797796
}
798797

799798
public static void main(String[] args) {

0 commit comments

Comments
 (0)