private static DocumentMessage newMessage(DocumentOperation documentOperation) { final TestAndSetMessage message; if (documentOperation instanceof DocumentPut) { message = new PutDocumentMessage(((DocumentPut)documentOperation)); } else if (documentOperation instanceof DocumentUpdate) { message = new UpdateDocumentMessage((DocumentUpdate)documentOperation); } else if (documentOperation instanceof DocumentRemove) { message = new RemoveDocumentMessage(documentOperation.getId()); } else { throw new UnsupportedOperationException(documentOperation.getClass().getName()); } message.setCondition(documentOperation.getCondition()); return message; }
@Override public void read(Operation operation) throws Exception { DocumentOperation documentOperation = reader.next(); if (documentOperation == null) { stream.close(); operation.setInvalid(); return; } if (documentOperation instanceof DocumentUpdate) { operation.setDocumentUpdate((DocumentUpdate) documentOperation); } else if (documentOperation instanceof DocumentRemove) { operation.setRemove(documentOperation.getId()); } else if (documentOperation instanceof DocumentPut) { operation.setDocument(((DocumentPut) documentOperation).getDocument()); } else { throw new IllegalStateException("Got unknown class from JSON reader: " + documentOperation.getClass().getName()); } operation.setCondition(documentOperation.getCondition()); }
private VespaXMLFeedReader.Operation parse(InputStream inputStream, String docId, DocumentParser.SupportedOperation supportedOperation) { final JsonReader reader = new JsonReader(docMan, inputStream, jsonFactory); final DocumentOperation documentOperation = reader.readSingleDocument(supportedOperation, docId); VespaXMLFeedReader.Operation operation = new VespaXMLFeedReader.Operation(); try { inputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } if (supportedOperation == DocumentParser.SupportedOperation.PUT) { operation.setDocument(((DocumentPut) documentOperation).getDocument()); } else { operation.setDocumentUpdate((DocumentUpdate) documentOperation); } // (A potentially empty) test-and-set condition is always set by JsonReader operation.setCondition(documentOperation.getCondition()); return operation; } }