public DocumentOperation getWrappedDocumentOperation() { return new DocumentPut(this); }
@Override public Result put(Document document, DocumentProtocol.Priority pri) { PutDocumentMessage msg = new PutDocumentMessage(new DocumentPut(document)); msg.setPriority(pri); return send(msg); }
public Number evaluate(Document doc, Map<String, Object> variables) { Context context = new Context(new DocumentPut(doc)); context.setVariables(variables); try { Object o = comparison.getLHS().evaluate(context); if (Double.isInfinite(((Number)o).doubleValue())) { throw new IllegalArgumentException("Expression evaluated to an infinite number"); } return ((Number)o).doubleValue(); } catch (ArithmeticException e) { throw new IllegalArgumentException("Arithmetic exception " + e.getMessage(), e); } } }
/** * Returns true if the entry matches the selection criteria given. */ public boolean match(Document doc, long timestamp) { if (timestamp < fromTimestamp) { return false; } if (timestamp > toTimestamp) { return false; } if (timestampSubset != null && !timestampSubset.contains(timestamp)) { return false; } if (documentSelection != null && doc != null && !documentSelection.accepts(new DocumentPut(doc)).equals(Result.TRUE)) { return false; } return true; }
private void unwrapSchemaMapping(Processing processing) { final List<DocumentOperation> documentOperations = processing.getDocumentOperations(); for (int i = 0; i < documentOperations.size(); i++) { DocumentOperation documentOperation = documentOperations.get(i); if (documentOperation instanceof DocumentPut) { DocumentPut putOperation = (DocumentPut) documentOperation; if (putOperation.getDocument() instanceof DocumentOperationWrapper) { DocumentOperationWrapper proxy = (DocumentOperationWrapper) putOperation.getDocument(); documentOperations.set(i, new DocumentPut(putOperation, ((DocumentPut)proxy.getWrappedDocumentOperation()).getDocument())); } } } }
@Override public Result put(Document document, DocumentProtocol.Priority pri) { long req = getNextRequestId(); try { syncSession.put(new DocumentPut(document), pri); addResponse(new DocumentResponse(req)); } catch (Exception e) { addResponse(new DocumentResponse(req, document, e.getMessage(), false)); } return new Result(req); }
protected void decodeInto(PutDocumentMessage msg, DocumentDeserializer buf) { msg.setDocumentPut(new DocumentPut(Document.createDocument(buf))); msg.setTimestamp(buf.getLong(null)); decodeTasCondition(msg, buf); }
public void applyTo(Document doc) { if (selector == null) { FieldPathIteratorHandler handler = getIteratorHandler(doc); doc.iterateNested(fieldPath, 0, handler); } else { ResultList results = selector.getMatchingResultList(new DocumentPut(doc)); ListIterator<ResultList.ResultPair> resultIter = results.getResults().listIterator(results.getResults().size()); while (resultIter.hasPrevious()) { ResultList.ResultPair rp = resultIter.previous(); if (rp.getResult() == Result.TRUE) { FieldPathIteratorHandler handler = getIteratorHandler(doc); handler.getVariables().clear(); handler.getVariables().putAll(rp.getVariables()); doc.iterateNested(fieldPath, 0, handler); } } } }
switch (documentParseInfo.operationType) { case PUT: documentOperation = new DocumentPut(new Document(documentType, documentParseInfo.documentId)); readPut(documentParseInfo.fieldsBuffer, (DocumentPut) documentOperation); verifyEndState(documentParseInfo.fieldsBuffer, JsonToken.END_OBJECT);
static DocumentOperationMessageV3 newPutMessage(VespaXMLFeedReader.Operation op, String operationId) { DocumentPut put = new DocumentPut(op.getDocument()); put.setCondition(op.getCondition()); Message msg = new PutDocumentMessage(put); String id = (operationId == null) ? put.getId().toString() : operationId; return new DocumentOperationMessageV3(id, msg); }
/** * The Document object the proc should work on. Normally the one in arguments, but could be a proxy object * if schema mapping or @Accesses is in effect. * * <p> * public for testing */ public DocumentPut configDoc(DocumentProcessor docProc, DocumentPut documentPut) { if (!docProc.getFieldMap().isEmpty() || docProc.hasAnnotations()) { Document document = documentPut.getDocument(); document = new ProxyDocument(docProc, document, docProc.getDocMap(document.getDataType().getName())); DocumentPut newDocumentPut = new DocumentPut(document); newDocumentPut.setCondition(documentPut.getCondition()); documentPut = newDocumentPut; } return documentPut; }
public List<Processing> fromMessage(Message message) { List<Processing> processings = new ArrayList<>(); switch (message.getType()) { case DocumentProtocol.MESSAGE_PUTDOCUMENT: { PutDocumentMessage putMessage = (PutDocumentMessage) message; DocumentPut putOperation = new DocumentPut(createPutDocument(putMessage)); putOperation.setCondition(putMessage.getCondition()); processings.add(createProcessing(putOperation, message)); break; } case DocumentProtocol.MESSAGE_UPDATEDOCUMENT: { UpdateDocumentMessage updateMessage = (UpdateDocumentMessage) message; DocumentUpdate updateOperation = updateMessage.getDocumentUpdate(); updateOperation.setCondition(updateMessage.getCondition()); processings.add(createProcessing(updateOperation, message)); break; } case DocumentProtocol.MESSAGE_REMOVEDOCUMENT: { RemoveDocumentMessage removeMessage = (RemoveDocumentMessage) message; DocumentRemove removeOperation = new DocumentRemove(removeMessage.getDocumentId()); removeOperation.setCondition(removeMessage.getCondition()); processings.add(createProcessing(removeOperation, message)); break; } } return processings; }
@Override public void put(RestUri restUri, VespaXMLFeedReader.Operation data, Optional<String> route) throws RestApiException { SyncSession syncSession = syncSessions.alloc(); Response response; try { Instant startTime = Instant.now(); DocumentPut put = new DocumentPut(data.getDocument()); put.setCondition(data.getCondition()); setRoute(syncSession, route); syncSession.put(put); metricsHelper.reportSuccessful(DocumentOperationType.PUT, startTime); return; } catch (DocumentAccessException documentException) { response = createErrorResponse(documentException, restUri); } catch (Exception e) { response = Response.createErrorResponse(500, ExceptionUtils.getStackTrace(e), restUri, RestUri.apiErrorCodes.INTERNAL_EXCEPTION); } finally { syncSessions.free(syncSession); } metricsHelper.reportFailure(DocumentOperationType.PUT, DocumentOperationStatus.fromHttpStatusCode(response.getStatus())); throw new RestApiException(response); }