-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathReadAll.java
49 lines (40 loc) · 2.18 KB
/
ReadAll.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.eventstore.dbclient;
import com.eventstore.dbclient.proto.shared.Shared;
import com.eventstore.dbclient.proto.streams.StreamsOuterClass;
class ReadAll extends AbstractRead {
private final ReadAllOptions options;
public ReadAll(GrpcClient client, ReadAllOptions options) {
super(client, options);
this.options = options;
}
@Override
public StreamsOuterClass.ReadReq.Options.Builder createOptions() {
StreamsOuterClass.ReadReq.Options.AllOptions.Builder optionsOrBuilder =
StreamsOuterClass.ReadReq.Options.AllOptions.newBuilder();
if (this.options.getPosition().isEnd()) {
optionsOrBuilder.setEnd(Shared.Empty.getDefaultInstance());
} else if (this.options.getPosition().isStart()) {
optionsOrBuilder.setStart(Shared.Empty.getDefaultInstance());
} else {
StreamPosition.Position<Position> position = (StreamPosition.Position<Position>) this.options.getPosition();
optionsOrBuilder.setPosition(StreamsOuterClass.ReadReq.Options.Position.newBuilder()
.setCommitPosition(position.getPositionOrThrow().getCommitUnsigned())
.setPreparePosition(position.getPositionOrThrow().getPrepareUnsigned()));
}
StreamsOuterClass.ReadReq.Options.Builder builder = defaultReadOptions.clone()
.setAll(optionsOrBuilder)
.setResolveLinks(this.options.shouldResolveLinkTos())
.setControlOption(StreamsOuterClass.ReadReq.Options.ControlOption.newBuilder().setCompatibility(1))
.setCount(this.options.getMaxCount())
//.setNoFilter(Shared.Empty.getDefaultInstance())
.setReadDirection(this.options.getDirection() == Direction.Forwards ?
StreamsOuterClass.ReadReq.Options.ReadDirection.Forwards :
StreamsOuterClass.ReadReq.Options.ReadDirection.Backwards);
if (this.options.getFilter() != null) {
this.options.getFilter().addToWireStreamsReadReq(builder);
} else {
builder.setNoFilter(Shared.Empty.getDefaultInstance());
}
return builder;
}
}