@Override protected void setUp() throws Exception { super.setUp(); addParticipantOp = ProtocolWaveletOperation.newBuilder() .setAddParticipant(AUTHOR) .build(); // An empty blip operation - creates a new document. addBlipOp = ProtocolWaveletOperation.newBuilder().setMutateDocument( MutateDocument.newBuilder().setDocumentId(BLIP_ID).setDocumentOperation( ProtocolDocumentOperation.newBuilder().build())).build(); WaveletNotificationSubscriber notifiee = mock(WaveletNotificationSubscriber.class); DeltaStore deltaStore = new MemoryDeltaStore(); WaveletState waveletState = DeltaStoreBasedWaveletState.create(deltaStore.open(WAVELET_NAME), PERSIST_EXECUTOR); wavelet = new LocalWaveletContainerImpl(WAVELET_NAME, notifiee, Futures.immediateFuture(waveletState), null, STORAGE_CONTINUATION_EXECUTOR); wavelet.awaitLoad(); }
return output.build();
@Override public void annotationBoundary(AnnotationBoundaryMap map) { ProtocolDocumentOperation.Component.AnnotationBoundary.Builder a = ProtocolDocumentOperation.Component.AnnotationBoundary.newBuilder(); if (map.endSize() == 0 && map.changeSize() == 0) { a.setEmpty(true); } else { for (int i = 0; i < map.endSize(); i++) { a.addEnd(map.getEndKey(i)); } for (int i = 0; i < map.changeSize(); i++) { a.addChange(makeKeyValueUpdate( map.getChangeKey(i), map.getOldValue(i), map.getNewValue(i))); } } output.addComponent(newComponentBuilder().setAnnotationBoundary(a.build()).build()); }
@Override protected void setUp() throws Exception { super.setUp(); addParticipantOp = ProtocolWaveletOperation.newBuilder() .setAddParticipant(AUTHOR) .build(); // An empty blip operation - creates a new document. addBlipOp = ProtocolWaveletOperation.newBuilder().setMutateDocument( MutateDocument.newBuilder().setDocumentId(BLIP_ID).setDocumentOperation( ProtocolDocumentOperation.newBuilder().build())).build(); WaveletNotificationSubscriber notifiee = mock(WaveletNotificationSubscriber.class); DeltaStore deltaStore = new MemoryDeltaStore(); WaveletState waveletState = DeltaStoreBasedWaveletState.create(deltaStore.open(WAVELET_NAME), PERSIST_EXECUTOR); AccessController accessController = mock(AccessController.class); wavelet = new LocalWaveletContainerImpl(WAVELET_NAME, notifiee, Futures.immediateFuture(waveletState), null, STORAGE_CONTINUATION_EXECUTOR, accessController); wavelet.awaitLoad(); }
@Override public void replaceAttributes(Attributes oldAttributes, Attributes newAttributes) { ProtocolDocumentOperation.Component.ReplaceAttributes.Builder r = ProtocolDocumentOperation.Component.ReplaceAttributes.newBuilder(); if (oldAttributes.isEmpty() && newAttributes.isEmpty()) { r.setEmpty(true); } else { for (String name : oldAttributes.keySet()) { r.addOldAttribute(ProtocolDocumentOperation.Component.KeyValuePair.newBuilder() .setKey(name).setValue(oldAttributes.get(name)).build()); } for (String name : newAttributes.keySet()) { r.addNewAttribute(ProtocolDocumentOperation.Component.KeyValuePair.newBuilder() .setKey(name).setValue(newAttributes.get(name)).build()); } } output.addComponent(newComponentBuilder().setReplaceAttributes(r.build()).build()); }
@Override public void deleteCharacters(String characters) { output.addComponent(newComponentBuilder().setDeleteCharacters(characters).build()); }
@Override public void characters(String characters) { output.addComponent(newComponentBuilder().setCharacters(characters).build()); }
@Override public void retain(int itemCount) { output.addComponent(newComponentBuilder().setRetainItemCount(itemCount).build()); }
@Override public void deleteElementEnd() { output.addComponent(newComponentBuilder().setDeleteElementEnd(true).build()); }
@Override public void elementEnd() { output.addComponent(newComponentBuilder().setElementEnd(true).build()); }
@Override public void updateAttributes(AttributesUpdate attributes) { ProtocolDocumentOperation.Component.UpdateAttributes.Builder u = ProtocolDocumentOperation.Component.UpdateAttributes.newBuilder(); if (attributes.changeSize() == 0) { u.setEmpty(true); } else { for (int i = 0; i < attributes.changeSize(); i++) { u.addAttributeUpdate(makeKeyValueUpdate( attributes.getChangeKey(i), attributes.getOldValue(i), attributes.getNewValue(i))); } } output.addComponent(newComponentBuilder().setUpdateAttributes(u.build()).build()); }
@Override public void deleteElementStart(String type, Attributes attributes) { ProtocolDocumentOperation.Component.ElementStart e = makeElementStart(type, attributes); output.addComponent(newComponentBuilder().setDeleteElementStart(e).build()); }
@Override public void elementStart(String type, Attributes attributes) { ProtocolDocumentOperation.Component.ElementStart e = makeElementStart(type, attributes); output.addComponent(newComponentBuilder().setElementStart(e).build()); }