Skip to content

Commit 89380fa

Browse files
authored
validate builders (#32)
1 parent 29d312d commit 89380fa

File tree

5 files changed

+26
-1
lines changed

5 files changed

+26
-1
lines changed

client/src/main/java/io/hstream/Subscription.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.hstream;
22

3+
import static com.google.common.base.Preconditions.*;
4+
35
import java.util.Objects;
46

57
/** A class for storing information about subscriptions */
@@ -63,7 +65,7 @@ public static class Builder {
6365
private String subscriptionId;
6466
private String streamName;
6567
private SubscriptionOffset subscriptionOffset;
66-
private int ackTimeoutSeconds;
68+
private int ackTimeoutSeconds = 600;
6769

6870
public Builder subscription(String subscriptionId) {
6971
this.subscriptionId = subscriptionId;
@@ -86,6 +88,10 @@ public Builder ackTimeoutSeconds(int ackTimeoutSeconds) {
8688
}
8789

8890
public Subscription build() {
91+
checkNotNull(subscriptionId);
92+
checkNotNull(streamName);
93+
checkNotNull(subscriptionOffset);
94+
checkState(ackTimeoutSeconds > 0 && ackTimeoutSeconds < 36000);
8995
return new Subscription(subscriptionId, streamName, subscriptionOffset, ackTimeoutSeconds);
9096
}
9197
}

client/src/main/java/io/hstream/impl/ConsumerBuilderImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.hstream.impl;
22

3+
import static com.google.common.base.Preconditions.*;
4+
35
import io.hstream.Consumer;
46
import io.hstream.ConsumerBuilder;
57
import io.hstream.HRecordReceiver;
@@ -48,6 +50,10 @@ public ConsumerBuilder hRecordReceiver(HRecordReceiver hRecordReceiver) {
4850

4951
@Override
5052
public Consumer build() {
53+
checkNotNull(grpcStub);
54+
checkNotNull(grpcBlockingStub);
55+
checkNotNull(subscription);
56+
checkState(rawRecordReceiver != null || hRecordReceiver != null);
5157
return new ConsumerImpl(
5258
grpcStub, grpcBlockingStub, name, subscription, rawRecordReceiver, hRecordReceiver);
5359
}

client/src/main/java/io/hstream/impl/HStreamClientBuilderImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.hstream.impl;
22

3+
import static com.google.common.base.Preconditions.*;
4+
35
import io.hstream.HStreamClient;
46
import io.hstream.HStreamClientBuilder;
57

@@ -15,6 +17,7 @@ public HStreamClientBuilder serviceUrl(String serviceUrl) {
1517

1618
@Override
1719
public HStreamClient build() {
20+
checkNotNull(serviceUrl);
1821
return new HStreamClientImpl(serviceUrl);
1922
}
2023
}

client/src/main/java/io/hstream/impl/ProducerBuilderImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.hstream.impl;
22

3+
import static com.google.common.base.Preconditions.*;
4+
35
import io.hstream.Producer;
46
import io.hstream.ProducerBuilder;
57
import io.hstream.internal.HStreamApiGrpc;
@@ -38,6 +40,8 @@ public ProducerBuilder recordCountLimit(int recordCountLimit) {
3840

3941
@Override
4042
public Producer build() {
43+
checkNotNull(grpcStub);
44+
checkNotNull(streamName);
4145
return new ProducerImpl(grpcStub, streamName, enableBatch, recordCountLimit);
4246
}
4347
}

client/src/main/java/io/hstream/impl/QueryerBuilderImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.hstream.impl;
22

3+
import static com.google.common.base.Preconditions.*;
4+
35
import io.hstream.*;
46
import io.hstream.internal.HStreamApiGrpc;
57

@@ -29,6 +31,10 @@ public QueryerBuilder resultObserver(Observer<HRecord> resultObserver) {
2931

3032
@Override
3133
public Queryer build() {
34+
checkNotNull(client);
35+
checkNotNull(grpcStub);
36+
checkNotNull(sql);
37+
checkNotNull(resultObserver);
3238
return new QueryerImpl(client, grpcStub, sql, resultObserver);
3339
}
3440
}

0 commit comments

Comments
 (0)