@Override public DocumentType getType() { return docU.getType(); }
public ProxyDocumentUpdate(DocumentUpdate docUpd, Map<String, String> fieldMap) { super(docUpd.getType(), docUpd.getId().toString()+"-schemamappedupdate"); this.docU=docUpd; this.fieldMap=fieldMap; }
private void addFieldPathUpdates(DocumentUpdate update, TokenBuffer buffer, String fieldPath) { int localNesting = buffer.nesting(); buffer.next(); while (localNesting <= buffer.nesting()) { String fieldPathOperation = buffer.currentName().toLowerCase(); FieldPathUpdate fieldPathUpdate; if (fieldPathOperation.equals(UPDATE_ASSIGN)) { fieldPathUpdate = readAssignFieldPathUpdate(update.getType(), fieldPath, buffer); } else if (fieldPathOperation.equals(UPDATE_ADD)) { fieldPathUpdate = readAddFieldPathUpdate(update.getType(), fieldPath, buffer); } else if (fieldPathOperation.equals(UPDATE_REMOVE)) { fieldPathUpdate = readRemoveFieldPathUpdate(update.getType(), fieldPath, buffer); } else if (SingleValueReader.UPDATE_OPERATION_TO_ARITHMETIC_SIGN.containsKey(fieldPathOperation)) { fieldPathUpdate = readArithmeticFieldPathUpdate(update.getType(), fieldPath, buffer, fieldPathOperation); } else { throw new IllegalArgumentException("Field path update type '" + fieldPathOperation + "' not supported."); } update.addFieldPathUpdate(fieldPathUpdate); buffer.next(); } }
private void addFieldUpdates(DocumentUpdate update, TokenBuffer buffer, String fieldName) { Field field = update.getType().getField(fieldName); int localNesting = buffer.nesting(); FieldUpdate fieldUpdate = FieldUpdate.create(field); buffer.next(); while (localNesting <= buffer.nesting()) { switch (buffer.currentName()) { case UPDATE_REMOVE: createRemoves(buffer, field, fieldUpdate); break; case UPDATE_ADD: createAdds(buffer, field, fieldUpdate); break; case UPDATE_MATCH: fieldUpdate.addValueUpdate(createMapUpdate(buffer, field)); break; case UPDATE_MODIFY: fieldUpdate.addValueUpdate(createModifyUpdate(buffer, field)); break; default: String action = buffer.currentName(); fieldUpdate.addValueUpdate(readSingleUpdate(buffer, field.getDataType(), action)); } buffer.next(); } update.addFieldUpdate(fieldUpdate); }