@Override public ModificationStatus doModify(FieldValue fv) { if (!fv.getDataType().equals(newValue.getDataType())) { throw new IllegalArgumentException("Trying to assign " + newValue + " of type " + newValue.getDataType() + " to an instance of " + fv.getDataType()); } else { if (removeIfZero && (newValue instanceof NumericFieldValue) && ((NumericFieldValue)newValue).getNumber().longValue() == 0) { return ModificationStatus.REMOVED; } fv.assign(newValue); } return ModificationStatus.MODIFIED; }
@Override public int compareTo(FieldValue other) { int comp = super.compareTo(other); if (comp != 0) return comp; return Boolean.compare(value, ((BoolFieldValue)other).value); }
/** * Using the given field path, digs through the document and returns the matching field value. * If the field path resolves to multiple values, returns an ArrayFieldValue containing the * values. */ public FieldValue getRecursiveValue(String path) { return getRecursiveValue(getDataType().buildFieldPath(path)); }
@Override public FieldValue applyTo(FieldValue fval) { if (value == null) return null; fval.assign(value); return fval; }
@Override public boolean equals(Object o) { if (this == o) return true; if ( ! (o instanceof BoolFieldValue)) return false; if ( ! super.equals(o)) return false; BoolFieldValue that = (BoolFieldValue) o; if (value != that.value) return false; return true; }
private static void writeValue(VespaDocumentSerializer42 serializer, DataType dataType, Object value) { FieldValue fieldValue; if (value instanceof FieldValue) { fieldValue = (FieldValue)value; } else { fieldValue = dataType.createFieldValue(value); } fieldValue.serialize(serializer); }
@Override public int hashCode() { int hc = index; if (key != null) { hc = key.hashCode(); } return hc; }
@Override public DataType createdOutputType() { return value.getDataType(); }
public static <K extends FieldValue, V extends FieldValue> void serializeMapField(FieldWriter fieldWriter, JsonGenerator generator, FieldBase field, MapFieldValue<K, V> map) { fieldNameIfNotNull(generator, field); wrapIOException(() -> { generator.writeStartObject(); for (Map.Entry<K, V> entry : map.entrySet()) { K key = entry.getKey(); DataType keyType = key.getDataType(); if ( ! (keyType instanceof PrimitiveDataType)) { throw new IllegalArgumentException("Can't use complex types as keys for map fields. Type: " + keyType); } generator.writeFieldName(key.toString()); entry.getValue().serialize(null, fieldWriter); } generator.writeEndObject(); }); }
/** * Constructs a copy of the input annotation. * * @param other annotation */ public Annotation(Annotation other) { this.type = other.type; this.value = ((other.value == null) ? null : other.value.clone()); //do not copy spanNode now }
if (last instanceof AssignValueUpdate) { FieldValue currentValue = doc.getFieldValue(update.getField()); if ((currentValue != null) && currentValue.equals(last.getValue())) { iter.remove(); iter.remove(); } else { FieldValue copy = currentValue.clone(); copy.clear(); if (currentValue.equals(copy)) { iter.remove();
@Override public FieldValue applyTo(FieldValue oldValue) { if (oldValue instanceof NumericFieldValue) { Number number = (Number) oldValue.getWrappedValue(); oldValue.assign(calculate(number)); } else { throw new IllegalStateException("Cannot use arithmetic value update on non-numeric datatype "+oldValue.getClass().getName()); } return oldValue; }
public String toString() { if (key != null) { return key.toString(); } else { return "" + index; } }
boolean checkAssign(Object o) { if (o == null) { clear(); return false; } return true; }
private static FieldValue wrapValue(DataType type, Object val) { if (val == null) { return null; } if (val instanceof FieldValue) { return (FieldValue)val; } FieldValue ret = type.createFieldValue(); ret.assign(val); return ret; }
@Override public boolean equals(Object obj) { if (!(obj instanceof SetValueExpression)) { return false; } SetValueExpression rhs = (SetValueExpression)obj; if (!value.equals(rhs.value)) { return false; } return true; }
private static void writeValue(VespaDocumentSerializer6 serializer, DataType dataType, Object value) { FieldValue fieldValue; if (value instanceof FieldValue) { fieldValue = (FieldValue)value; } else { fieldValue = dataType.createFieldValue(value); } fieldValue.serialize(serializer); }
@Override public int hashCode() { return super.hashCode() + ( value ? 3 : 0); }
@Override public int compareTo(FieldValue fieldValue) { return getDataType().compareTo(fieldValue.getDataType()); }