@java.lang.Override public Builder newBuilderForType() { return newBuilder(); }
result = result && getValueTypeCase().equals(other.getValueTypeCase()); if (!result) return false; switch (valueTypeCase_) { case 11: result = result && getNullValueValue() == other.getNullValueValue(); break; case 1: result = result && (getBooleanValue() == other.getBooleanValue()); break; case 2: result = result && (getIntegerValue() == other.getIntegerValue()); break; case 3: result = result && (java.lang.Double.doubleToLongBits(getDoubleValue()) == java.lang.Double.doubleToLongBits(other.getDoubleValue())); break; case 10: result = result && getTimestampValue().equals(other.getTimestampValue()); break; case 17: result = result && getStringValue().equals(other.getStringValue()); break; case 18: result = result && getBytesValue().equals(other.getBytesValue()); break; case 5: result = result && getReferenceValue().equals(other.getReferenceValue());
private int compareNumbers(Value left, Value right) { if (left.getValueTypeCase() == ValueTypeCase.DOUBLE_VALUE) { if (right.getValueTypeCase() == ValueTypeCase.DOUBLE_VALUE) { return compareDoubles(left.getDoubleValue(), right.getDoubleValue()); } else { return compareDoubles(left.getDoubleValue(), right.getIntegerValue()); } } else { if (right.getValueTypeCase() == ValueTypeCase.INTEGER_VALUE) { return Long.compare(left.getIntegerValue(), right.getIntegerValue()); } else { return compareDoubles(left.getIntegerValue(), right.getDoubleValue()); } } }
/** Returns the Value Proto at 'fieldPath'. Returns null if the field was not found. */ @Nullable Value extractField(@Nonnull FieldPath fieldPath) { Value value = null; if (fields != null) { Iterator<String> components = fieldPath.getSegments().iterator(); value = fields.get(components.next()); while (value != null && components.hasNext()) { if (value.getValueTypeCase() != Value.ValueTypeCase.MAP_VALUE) { return null; } value = value.getMapValue().getFieldsOrDefault(components.next(), null); } } return value; }
public Builder mergeFrom(com.google.firestore.v1beta1.Value other) { if (other == com.google.firestore.v1beta1.Value.getDefaultInstance()) return this; switch (other.getValueTypeCase()) { case NULL_VALUE: setNullValueValue(other.getNullValueValue()); break; setBooleanValue(other.getBooleanValue()); break; setIntegerValue(other.getIntegerValue()); break; setDoubleValue(other.getDoubleValue()); break; mergeTimestampValue(other.getTimestampValue()); break; setBytesValue(other.getBytesValue()); break; mergeGeoPointValue(other.getGeoPointValue()); break; mergeArrayValue(other.getArrayValue()); break; mergeMapValue(other.getMapValue());
if (incrementBuilder_ == null) { if (transformTypeCase_ == 3 && transformType_ != com.google.firestore.v1beta1.Value.getDefaultInstance()) { transformType_ = com.google.firestore.v1beta1.Value.newBuilder( (com.google.firestore.v1beta1.Value) transformType_) .mergeFrom(value)
private static int compareGeoPoints(Value left, Value right) { int cmp = Double.compare( left.getGeoPointValue().getLatitude(), right.getGeoPointValue().getLatitude()); if (cmp != 0) { return cmp; } else { return Double.compare( left.getGeoPointValue().getLongitude(), right.getGeoPointValue().getLongitude()); } }
private int compareArrays(Value left, Value right) { List<Value> leftValue = left.getArrayValue().getValuesList(); List<Value> rightValue = right.getArrayValue().getValuesList(); int minLength = Math.min(leftValue.size(), rightValue.size()); for (int i = 0; i < minLength; i++) { int cmp = compare(leftValue.get(i), rightValue.get(i)); if (cmp != 0) { return cmp; } } return Integer.compare(leftValue.size(), rightValue.size()); }
private int compareResourcePaths(Value left, Value right) { ResourcePath leftPath = ResourcePath.create(left.getReferenceValue()); ResourcePath rightPath = ResourcePath.create(right.getReferenceValue()); return leftPath.compareTo(rightPath); }
private int compareStrings(Value left, Value right) { return left.getStringValue().compareTo(right.getStringValue()); }
private int compareBlobs(Value left, Value right) { ByteString leftBytes = left.getBytesValue(); ByteString rightBytes = right.getBytesValue(); int size = Math.min(leftBytes.size(), rightBytes.size()); for (int i = 0; i < size; i++) { // Make sure the bytes are unsigned int thisByte = leftBytes.byteAt(i) & 0xff; int otherByte = rightBytes.byteAt(i) & 0xff; if (thisByte < otherByte) { return -1; } else if (thisByte > otherByte) { return 1; } // Byte values are equal, continue with comparison } return Integer.compare(leftBytes.size(), rightBytes.size()); }
private int compareObjects(Value left, Value right) { // This requires iterating over the keys in the object in order and doing a // deep comparison. SortedMap<String, Value> leftMap = new TreeMap<>(); leftMap.putAll(left.getMapValue().getFieldsMap()); SortedMap<String, Value> rightMap = new TreeMap<>(); rightMap.putAll(right.getMapValue().getFieldsMap()); Iterator<Entry<String, Value>> leftIterator = leftMap.entrySet().iterator(); Iterator<Entry<String, Value>> rightIterator = rightMap.entrySet().iterator(); while (leftIterator.hasNext() && rightIterator.hasNext()) { Entry<String, Value> leftEntry = leftIterator.next(); Entry<String, Value> rightEntry = rightIterator.next(); int keyCompare = leftEntry.getKey().compareTo(rightEntry.getKey()); if (keyCompare != 0) { return keyCompare; } int valueCompare = compare(leftEntry.getValue(), rightEntry.getValue()); if (valueCompare != 0) { return valueCompare; } } // Only equal if both iterators are exhausted. return Boolean.compare(leftIterator.hasNext(), rightIterator.hasNext()); }
return 0; // Nulls are all equal. case BOOLEAN: return Boolean.compare(left.getBooleanValue(), right.getBooleanValue()); case NUMBER: return compareNumbers(left, right);
private int compareNumbers(Value left, Value right) { if (left.getValueTypeCase() == ValueTypeCase.DOUBLE_VALUE) { if (right.getValueTypeCase() == ValueTypeCase.DOUBLE_VALUE) { return compareDoubles(left.getDoubleValue(), right.getDoubleValue()); } else { return compareDoubles(left.getDoubleValue(), right.getIntegerValue()); } } else { if (right.getValueTypeCase() == ValueTypeCase.INTEGER_VALUE) { return Long.compare(left.getIntegerValue(), right.getIntegerValue()); } else { return compareDoubles(left.getIntegerValue(), right.getDoubleValue()); } } }
if (maximumBuilder_ == null) { if (transformTypeCase_ == 4 && transformType_ != com.google.firestore.v1beta1.Value.getDefaultInstance()) { transformType_ = com.google.firestore.v1beta1.Value.newBuilder( (com.google.firestore.v1beta1.Value) transformType_) .mergeFrom(value)
/** Returns the Value Proto at 'fieldPath'. Returns null if the field was not found. */ @Nullable Value extractField(@Nonnull FieldPath fieldPath) { Value value = null; if (fields != null) { Iterator<String> components = fieldPath.getSegments().iterator(); value = fields.get(components.next()); while (value != null && components.hasNext()) { if (value.getValueTypeCase() != Value.ValueTypeCase.MAP_VALUE) { return null; } value = value.getMapValue().getFieldsOrDefault(components.next(), null); } } return value; }
private static int compareGeoPoints(Value left, Value right) { int cmp = Double.compare( left.getGeoPointValue().getLatitude(), right.getGeoPointValue().getLatitude()); if (cmp != 0) { return cmp; } else { return Double.compare( left.getGeoPointValue().getLongitude(), right.getGeoPointValue().getLongitude()); } }
private int compareArrays(Value left, Value right) { List<Value> leftValue = left.getArrayValue().getValuesList(); List<Value> rightValue = right.getArrayValue().getValuesList(); int minLength = Math.min(leftValue.size(), rightValue.size()); for (int i = 0; i < minLength; i++) { int cmp = compare(leftValue.get(i), rightValue.get(i)); if (cmp != 0) { return cmp; } } return Integer.compare(leftValue.size(), rightValue.size()); }
private int compareResourcePaths(Value left, Value right) { ResourcePath leftPath = ResourcePath.create(left.getReferenceValue()); ResourcePath rightPath = ResourcePath.create(right.getReferenceValue()); return leftPath.compareTo(rightPath); }
private int compareStrings(Value left, Value right) { return left.getStringValue().compareTo(right.getStringValue()); }