public Builder mergeFrom(com.google.firestore.v1beta1.ListenResponse other) { if (other == com.google.firestore.v1beta1.ListenResponse.getDefaultInstance()) return this; switch (other.getResponseTypeCase()) { case TARGET_CHANGE: mergeTargetChange(other.getTargetChange()); break; mergeDocumentChange(other.getDocumentChange()); break; mergeDocumentDelete(other.getDocumentDelete()); break; mergeDocumentRemove(other.getDocumentRemove()); break; mergeFilter(other.getFilter()); break;
@java.lang.Override public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); }
result = result && getResponseTypeCase().equals(other.getResponseTypeCase()); if (!result) return false; switch (responseTypeCase_) { case 2: result = result && getTargetChange().equals(other.getTargetChange()); break; case 3: result = result && getDocumentChange().equals(other.getDocumentChange()); break; case 4: result = result && getDocumentDelete().equals(other.getDocumentDelete()); break; case 6: result = result && getDocumentRemove().equals(other.getDocumentRemove()); break; case 5: result = result && getFilter().equals(other.getFilter()); break; case 0:
hash = (19 * hash) + getDescriptor().hashCode(); switch (responseTypeCase_) { case 2: hash = (37 * hash) + TARGET_CHANGE_FIELD_NUMBER; hash = (53 * hash) + getTargetChange().hashCode(); break; case 3: hash = (37 * hash) + DOCUMENT_CHANGE_FIELD_NUMBER; hash = (53 * hash) + getDocumentChange().hashCode(); break; case 4: hash = (37 * hash) + DOCUMENT_DELETE_FIELD_NUMBER; hash = (53 * hash) + getDocumentDelete().hashCode(); break; case 6: hash = (37 * hash) + DOCUMENT_REMOVE_FIELD_NUMBER; hash = (53 * hash) + getDocumentRemove().hashCode(); break; case 5: hash = (37 * hash) + FILTER_FIELD_NUMBER; hash = (53 * hash) + getFilter().hashCode(); break; case 0:
@java.lang.Override public com.google.firestore.v1beta1.ListenResponse getDefaultInstanceForType() { return com.google.firestore.v1beta1.ListenResponse.getDefaultInstance(); }
/** <code>repeated .google.firestore.v1beta1.ListenResponse responses = 1;</code> */ public com.google.firestore.v1beta1.ListenResponse.Builder addResponsesBuilder() { return getResponsesFieldBuilder() .addBuilder(com.google.firestore.v1beta1.ListenResponse.getDefaultInstance()); } /** <code>repeated .google.firestore.v1beta1.ListenResponse responses = 1;</code> */
private ListenResponse docDelete(String docPath) { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setDocumentDelete( DocumentDelete.newBuilder() .addRemovedTargetIds(TARGET_ID) .setDocument(String.format("%s/documents/%s", DATABASE_NAME, docPath))); return response.build(); }
/** <code>repeated .google.firestore.v1beta1.ListenResponse responses = 1;</code> */ public com.google.firestore.v1beta1.ListenResponse.Builder addResponsesBuilder(int index) { return getResponsesFieldBuilder() .addBuilder(index, com.google.firestore.v1beta1.ListenResponse.getDefaultInstance()); } /** <code>repeated .google.firestore.v1beta1.ListenResponse responses = 1;</code> */
public static Builder newBuilder(com.google.firestore.v1beta1.ListenResponse prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); }
@Override public synchronized void onNext(ListenResponse listenResponse) { switch (listenResponse.getResponseTypeCase()) { case TARGET_CHANGE: TargetChange change = listenResponse.getTargetChange(); boolean noTargetIds = change.getTargetIdsCount() == 0; List<Integer> targetIds = listenResponse.getDocumentChange().getTargetIdsList(); List<Integer> removedTargetIds = listenResponse.getDocumentChange().getRemovedTargetIdsList(); boolean changed = targetIds.contains(WATCH_TARGET_ID); boolean removed = removedTargetIds.contains(WATCH_TARGET_ID); Document document = listenResponse.getDocumentChange().getDocument(); ResourcePath name = ResourcePath.create(document.getName()); changeMap.put(ResourcePath.create(listenResponse.getDocumentDelete().getDocument()), null); break; case DOCUMENT_REMOVE: changeMap.put(ResourcePath.create(listenResponse.getDocumentRemove().getDocument()), null); break; case FILTER: if (listenResponse.getFilter().getCount() != currentSize()) {
private ListenResponse docRemove(String docPath) { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setDocumentRemove( DocumentRemove.newBuilder() .addRemovedTargetIds(TARGET_ID) .setDocument(String.format("%s/documents/%s", DATABASE_NAME, docPath))); return response.build(); }
.setResponseMarshaller( io.grpc.protobuf.ProtoUtils.marshaller( com.google.firestore.v1beta1.ListenResponse.getDefaultInstance())) .setSchemaDescriptor(new FirestoreMethodDescriptorSupplier("Listen")) .build();
@Test public void queryWatchHandlesIgnoresDifferentTarget() throws InterruptedException { addQueryListener(); awaitAddTarget(); send(addTarget()); send(current()); ListenResponse.Builder request = doc("coll/doc1", SINGLE_FIELD_PROTO).toBuilder(); request.getDocumentChangeBuilder().clearTargetIds(); request.getDocumentChangeBuilder().addTargetIds(0x2); send(request.build()); send(snapshot()); awaitQuerySnapshot(); }
@Override public synchronized void onNext(ListenResponse listenResponse) { switch (listenResponse.getResponseTypeCase()) { case TARGET_CHANGE: TargetChange change = listenResponse.getTargetChange(); boolean noTargetIds = change.getTargetIdsCount() == 0; List<Integer> targetIds = listenResponse.getDocumentChange().getTargetIdsList(); List<Integer> removedTargetIds = listenResponse.getDocumentChange().getRemovedTargetIdsList(); boolean changed = targetIds.contains(WATCH_TARGET_ID); boolean removed = removedTargetIds.contains(WATCH_TARGET_ID); Document document = listenResponse.getDocumentChange().getDocument(); ResourcePath name = ResourcePath.create(document.getName()); changeMap.put(ResourcePath.create(listenResponse.getDocumentDelete().getDocument()), null); break; case DOCUMENT_REMOVE: changeMap.put(ResourcePath.create(listenResponse.getDocumentRemove().getDocument()), null); break; case FILTER: if (listenResponse.getFilter().getCount() != currentSize()) {
private ListenResponse addTarget() { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setTargetChange( TargetChange.newBuilder() .setTargetChangeType(TargetChangeType.ADD) .addTargetIds(TARGET_ID)); return response.build(); }
@Test public void queryWatchHandlesTargetRemoval() throws InterruptedException { addQueryListener(); awaitAddTarget(); send(addTarget()); send(current()); send(doc("coll/doc1", SINGLE_FIELD_PROTO)); send(snapshot()); awaitQuerySnapshot(new SnapshotDocument(ChangeType.ADDED, "coll/doc1", SINGLE_FIELD_MAP)); ListenResponse.Builder request = doc("coll/doc1", SINGLE_FIELD_PROTO).toBuilder(); request.getDocumentChangeBuilder().clearTargetIds(); request.getDocumentChangeBuilder().addRemovedTargetIds(TARGET_ID); send(request.build()); send(snapshot()); awaitQuerySnapshot(new SnapshotDocument(ChangeType.REMOVED, "coll/doc1", null)); }
private ListenResponse current() { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setTargetChange( TargetChange.newBuilder() .setTargetChangeType(TargetChangeType.CURRENT) .addTargetIds(TARGET_ID)); return response.build(); }
private ListenResponse reset() { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setTargetChange( TargetChange.newBuilder() .setTargetChangeType(TargetChangeType.RESET) .addTargetIds(TARGET_ID)); return response.build(); }
private ListenResponse filter(int documentCount) { ListenResponse.Builder response = ListenResponse.newBuilder(); response.setFilter(ExistenceFilter.newBuilder().setCount(documentCount).build()); return response.build(); }