Skip to content

Commit c737df6

Browse files
jkosh44keith-turner
authored andcommitted
Fixes #923 added span convenience methods to scanner builder (#940)
* Added the following default methods to the ScannerBuilder interface: default ScannerBuilder over(Bytes row) {...} default ScannerBuilder over(CharSequence row) {...} default ScannerBuilder over(Bytes row, Column col){...} default ScannerBuilder over(CharSequence row, , Column col){...} default ScannerBuilder overPrefix(Bytes row) {...} default ScannerBuilder overPrefix(CharSequence row){...} default ScannerBuilder overPrefix(Bytes row, Column col){...} default ScannerBuilder overPrefix(CharSequence row, , Column col){...} * Changed tests in the following classes to use the new over() and overprefix() methods ScannerIT WeakNotificationIT WorkerIT FluoIT LogIT * Moved @SInCE tag to the bottom of javadoc info. Changed param rowPrefix to row, and updated javadocs for the following methods: overPrefix(Bytes, Column){...} overPrefix(CharSequence, Column){...} Removed use of Bytes.of(String) calls within over() calls from FloutIT tests * fixed javadoc errors
1 parent 5c3ef12 commit c737df6

6 files changed

Lines changed: 101 additions & 15 deletions

File tree

‎modules/api/src/main/java/org/apache/fluo/api/client/scanner/ScannerBuilder.java‎

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import java.util.Collection;
1919

20+
import org.apache.fluo.api.data.Bytes;
2021
import org.apache.fluo.api.data.Column;
2122
import org.apache.fluo.api.data.Span;
2223

@@ -30,6 +31,96 @@ public interface ScannerBuilder {
3031
*/
3132
ScannerBuilder over(Span span);
3233

34+
/**
35+
*
36+
* @since 1.2.0
37+
* @see org.apache.fluo.api.data.Span#exact(Bytes)
38+
* @param row restrict the scanner to data in an exact row
39+
* @return self
40+
*/
41+
default ScannerBuilder over(Bytes row) {
42+
return over(Span.exact(row));
43+
}
44+
45+
/**
46+
*
47+
* @since 1.2.0
48+
* @see org.apache.fluo.api.data.Span#exact(CharSequence)
49+
* @param row restrict the scanner to data in an exact row. String parameters will be encoded as UTF-8
50+
* @return self
51+
*/
52+
default ScannerBuilder over(CharSequence row) {
53+
return over(Span.exact(row));
54+
}
55+
56+
/**
57+
*
58+
* @see org.apache.fluo.api.data.Span#exact(Bytes, Column)
59+
* @param row restrict the scanner to data in an exact row
60+
* @param col restrict the scanner to data in exact {@link org.apache.fluo.api.data.Column}.
61+
* @since 1.2.0
62+
*/
63+
default ScannerBuilder over(Bytes row, Column col) {
64+
return over(Span.exact(row, col));
65+
}
66+
67+
/**
68+
*
69+
* @see org.apache.fluo.api.data.Span#exact(CharSequence, Column)
70+
* @param row restrict the scanner to data in an exact row
71+
* @param col restrict the scanner to data in exact {@link org.apache.fluo.api.data.Column}.
72+
* @return self
73+
* @since 1.2.0
74+
*/
75+
default ScannerBuilder over(CharSequence row, Column col) {
76+
return over(Span.exact(row, col));
77+
}
78+
79+
/**
80+
*
81+
* @see org.apache.fluo.api.data.Span#prefix(Bytes)
82+
* @param rowPrefix restrict the scanner to data in rows that begins with a prefix
83+
* @return self
84+
* @since 1.2.0
85+
*/
86+
default ScannerBuilder overPrefix(Bytes rowPrefix) {
87+
return over(Span.prefix(rowPrefix));
88+
}
89+
90+
/**
91+
*
92+
* @see org.apache.fluo.api.data.Span#prefix(CharSequence)
93+
* @param rowPrefix restrict the scanner to data in rows that begins with a prefix.
94+
* @return self
95+
* @since 1.2.0
96+
*/
97+
default ScannerBuilder overPrefix(CharSequence rowPrefix) {
98+
return over(Span.prefix(rowPrefix));
99+
}
100+
101+
/**
102+
*
103+
* @see org.apache.fluo.api.data.Span#prefix(Bytes, Column)
104+
* @param row restrict the scanner to data in an exact row.
105+
* @param colPrefix restrict scanner to data that begins with specifiec {@link org.apache.fluo.api.data.Column} prefix.
106+
* @return self
107+
* @since 1.2.0
108+
*/
109+
default ScannerBuilder overPrefix(Bytes row, Column colPrefix) {
110+
return over(Span.prefix(row, colPrefix));
111+
}
112+
113+
/**
114+
*
115+
* @see org.apache.fluo.api.data.Span#prefix(CharSequence, Column)
116+
* @param row restrict the scanner to data in an exact row.
117+
* @param colPrefix restrict scanner to data that begins with specifiec {@link org.apache.fluo.api.data.Column} prefix.
118+
* @return self
119+
* @since 1.2.0
120+
*/
121+
default ScannerBuilder overPrefix(CharSequence row, Column colPrefix) {
122+
return over(Span.prefix(row, colPrefix));
123+
}
33124

34125
/**
35126
* Passing in a Column with only the family set will fetch the entire column family.

‎modules/integration/src/test/java/org/apache/fluo/integration/impl/FluoIT.java‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,7 @@ public void testRange() throws Exception {
463463

464464
HashSet<Column> columns = new HashSet<>();
465465

466-
CellScanner cellScanner =
467-
tx2.scanner().over(Span.exact(Bytes.of("d00001"))).fetch(new Column("outlink")).build();
466+
CellScanner cellScanner = tx2.scanner().over("d00001").fetch(new Column("outlink")).build();
468467
for (RowColumnValue rcv : cellScanner) {
469468
columns.add(rcv.getColumn());
470469
}
@@ -480,8 +479,7 @@ public void testRange() throws Exception {
480479

481480
TestTransaction tx4 = new TestTransaction(env);
482481
columns.clear();
483-
cellScanner =
484-
tx4.scanner().over(Span.exact(Bytes.of("d00001"))).fetch(new Column("outlink")).build();
482+
cellScanner = tx4.scanner().over("d00001").fetch(new Column("outlink")).build();
485483
for (RowColumnValue rcv : cellScanner) {
486484
columns.add(rcv.getColumn());
487485
}

‎modules/integration/src/test/java/org/apache/fluo/integration/impl/ScannerIT.java‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,11 @@ public void testFiltering() {
6767

6868
try (Snapshot snap = client.newSnapshot()) {
6969
HashSet<RowColumnValue> actual = new HashSet<>();
70-
Iterables.addAll(actual, snap.scanner().over(Span.exact("r2")).build());
70+
Iterables.addAll(actual, snap.scanner().over("r2").build());
7171
Assert.assertEquals(expectedR2, actual);
7272

7373
actual.clear();
74-
Iterables.addAll(actual,
75-
snap.scanner().over(Span.exact("r2")).fetch(new Column("f1", "q2")).build());
74+
Iterables.addAll(actual, snap.scanner().over("r2").fetch(new Column("f1", "q2")).build());
7675
Assert.assertEquals(expectedR2c, actual);
7776

7877
actual.clear();

‎modules/integration/src/test/java/org/apache/fluo/integration/impl/WeakNotificationIT.java‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ public static class SimpleObserver implements Observer {
4444
@Override
4545
public void process(TransactionBase tx, Bytes row, Column col) throws Exception {
4646

47-
CellScanner cellScanner =
48-
tx.scanner().over(Span.exact(row, new Column(Bytes.of("stats")))).build();
47+
CellScanner cellScanner = tx.scanner().over(row, new Column(Bytes.of("stats"))).build();
4948

5049
int sum = 0;
5150

‎modules/integration/src/test/java/org/apache/fluo/integration/impl/WorkerIT.java‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ public void process(TransactionBase tx, String row, Column col) throws Exception
5656
String degree = tx.gets(row, DEGREE);
5757

5858
// calculate new degree
59-
String degree2 =
60-
"" + Iterables.size(tx.scanner().over(Span.exact(row, new Column("link"))).build());
59+
String degree2 = "" + Iterables.size(tx.scanner().over(row, new Column("link")).build());
6160

6261
if (degree == null || !degree.equals(degree2)) {
6362
tx.set(row, DEGREE, degree2);

‎modules/integration/src/test/java/org/apache/fluo/integration/log/LogIT.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -513,10 +513,10 @@ public void testScanLogging() {
513513
CellScanner scanner1 = snap.scanner().build();
514514
assertEqual(scanner1, rcv1, rcv2, rcv3, rcv4);
515515

516-
CellScanner scanner2 = snap.scanner().over(Span.exact("r1")).build();
516+
CellScanner scanner2 = snap.scanner().over("r1").build();
517517
assertEqual(scanner2, rcv1, rcv2);
518518

519-
CellScanner scanner3 = snap.scanner().over(Span.exact("r1")).fetch(c1).build();
519+
CellScanner scanner3 = snap.scanner().over("r1").fetch(c1).build();
520520
assertEqual(scanner3, rcv1);
521521

522522
CellScanner scanner4 = snap.scanner().fetch(c1).build();
@@ -527,10 +527,10 @@ public void testScanLogging() {
527527
RowScanner rowScanner1 = snap.scanner().byRow().build();
528528
assertEqual(rowScanner1, "r1", c1, "v1", c2, "v2", "r2", c1, "v3", c2, "v4");
529529

530-
RowScanner rowScanner2 = snap.scanner().over(Span.exact("r1")).byRow().build();
530+
RowScanner rowScanner2 = snap.scanner().over("r1").byRow().build();
531531
assertEqual(rowScanner2, "r1", c1, "v1", c2, "v2");
532532

533-
RowScanner rowScanner3 = snap.scanner().over(Span.exact("r1")).fetch(c1).byRow().build();
533+
RowScanner rowScanner3 = snap.scanner().over("r1").fetch(c1).byRow().build();
534534
assertEqual(rowScanner3, "r1", c1, "v1");
535535

536536
RowScanner rowScanner4 = snap.scanner().fetch(c1).byRow().build();

0 commit comments

Comments
 (0)