Progressed on port from C# to Java

This commit is contained in:
David Noble
2019-08-25 01:37:22 -07:00
parent 1943c6d81d
commit 5f8e221e08
65 changed files with 853 additions and 1009 deletions

View File

@@ -27,6 +27,10 @@ public final class Out<T> {
this.value = value;
}
public T setAndGet(T value) {
return this.value = value;
}
/**
* {@code true} if there is a value present, otherwise {@code false}
* <p>

View File

@@ -10,8 +10,8 @@ import java.util.Objects;
* A container object which may or may not contain a non-null value
*
* This is a value-based class and as such use of identity-sensitive operations--including reference equality
* ({@code ==}), identity hash code, or synchronization--on instances of {@Ref} may have unpredictable results and
* should be avoided.
* ({@code ==}), identity hash code, or synchronization--on instances of {@Reference} may have unpredictable results
* and should be avoided.
*
* @param <T>
*/
@@ -20,7 +20,7 @@ public final class Reference<T> {
private volatile T value;
public Reference(T value) {
this.set(value);
this.setAndGet(value);
}
public T get() {
@@ -30,6 +30,9 @@ public final class Reference<T> {
public void set(T value) {
this.value = value;
}
public T setAndGet(T value) {
return this.value = value;
}
/**
* {@code true} if there is a value present, otherwise {@code false}

View File

@@ -1,543 +1,418 @@
package Microsoft.Azure.Cosmos.Core.Utf8;
// ------------------------------------------------------------
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// ------------------------------------------------------------
//------------------------------------------------------------
//C# TO JAVA CONVERTER TODO TASK: There is no preprocessor in Java:
///#pragma warning disable CA2225 // Operator overloads have named alternates
package com.azure.data.cosmos.core;
// ReSharper disable once UseNameofExpression
import javax.annotation.Nonnull;
/** A string whose memory representation may be either UTF8 or UTF16.
This type supports polymorphic use of <see cref="string" /> and <see cref="Utf8String" />
when equality, hashing, and comparison are needed against either encoding. An API leveraging
<see cref="UtfAnyString" /> can avoid separate method overloads while still accepting either
encoding without imposing additional allocations.
*/
//C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
//ORIGINAL LINE: [DebuggerDisplay("{ToString()}")] public readonly struct UtfAnyString : IEquatable<UtfAnyString>, IComparable<UtfAnyString>, IEquatable<Utf8String>, IComparable<Utf8String>, IEquatable<string>, IComparable<string>
//C# TO JAVA CONVERTER WARNING: Java does not allow user-defined value types. The behavior of this class may differ from the original:
//ORIGINAL LINE: [DebuggerDisplay("{ToString()}")] public readonly struct UtfAnyString : IEquatable<UtfAnyString>, IComparable<UtfAnyString>, IEquatable<Utf8String>, IComparable<Utf8String>, IEquatable<string>, IComparable<string>
//C# TO JAVA CONVERTER WARNING: Java has no equivalent to the C# readonly struct:
public final class UtfAnyString implements IEquatable<UtfAnyString>, java.lang.Comparable<UtfAnyString>, IEquatable<Utf8String>, java.lang.Comparable<Utf8String>, IEquatable<String>, java.lang.Comparable<String>
{
public static UtfAnyString getEmpty()
{
return "";
import static com.azure.data.cosmos.core.Utf8String.transcodeUtf16;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* A string whose memory representation may be either UTF-8 or UTF-16
* <p>
* This type supports polymorphic use of {@link String} and {@link Utf8String} when equality, hashing, and comparison
* are needed against either encoding. An API leveraging {@link UtfAnyString} can avoid separate method overloads
* while still accepting either encoding without imposing additional allocations.
*/
public final class UtfAnyString implements CharSequence, Comparable<UtfAnyString> {
private static final UtfAnyString EMPTY = new UtfAnyString("");
private static final int NULL_HASHCODE = reduceHashCode(5_381, 5_381);
private CharSequence buffer;
public UtfAnyString() {
}
private Object buffer;
//C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
//ORIGINAL LINE: [MethodImpl(MethodImplOptions.AggressiveInlining)] public UtfAnyString(string utf16String)
public UtfAnyString()
{
public UtfAnyString(final String string) {
this.buffer = string;
}
public UtfAnyString(String utf16String)
{
this.buffer = utf16String;
}
//C# TO JAVA CONVERTER TODO TASK: Java annotations will not correspond to .NET attributes:
//ORIGINAL LINE: [MethodImpl(MethodImplOptions.AggressiveInlining)] public UtfAnyString(Utf8String utf8String)
public UtfAnyString(Utf8String utf8String)
{
public UtfAnyString(final Utf8String utf8String) {
this.buffer = utf8String;
}
public boolean getIsUtf8()
{
return this.buffer instanceof Utf8String;
private UtfAnyString(final CharSequence sequence) {
this.buffer = sequence;
}
public boolean getIsUtf16()
{
return this.buffer instanceof String;
/**
* {@code true} if the {@link UtfAnyString} is empty
*/
public boolean isEmpty() {
return this.buffer != null && this.buffer.length() == 0;
}
/** True if the length is empty.
*/
public boolean getIsNull()
{
/**
* {@code true} if the {@link UtfAnyString} is {@code null}
*/
public boolean isNull() {
return null == this.buffer;
}
/** True if the length is empty.
*/
public boolean getIsEmpty()
{
if (null == this.buffer)
{
public boolean isUtf16() {
return this.buffer instanceof String;
}
public boolean isUtf8() {
return this.buffer instanceof Utf8String;
}
/**
* Returns the {@code char} value at the specified {@code index}
* <p>
* An index ranges from zero to {@link UtfAnyString#length()} minus one. The first {@code char} value of the
* sequence is at index zero, the next at index one, and so on, as for array indexing. If the {@code char}
* value specified by the {@code index} is a surrogate, the surrogate (not the surrogate pair) is returned.
*
* @param index the index of the {@code char} value to be returned
* @return the specified {@code char} value
* @throws IndexOutOfBoundsException if the {@code index} argument is negative or not less than
* {@link UtfAnyString#length()}
* @throws UnsupportedOperationException if this {@link UtfAnyString} is {@code null}.
*/
@Override
public char charAt(final int index) {
if (this.buffer == null) {
throw new UnsupportedOperationException("String is null");
}
return this.buffer.charAt(index);
}
public UtfAnyString clone() {
return new UtfAnyString(this.buffer);
}
public int compareTo(@Nonnull final String other) {
checkNotNull(other);
if (other == this.buffer) {
return 0;
}
if (this.buffer == null) {
return -1;
}
return this.buffer instanceof String
? ((String) this.buffer).compareTo(other)
: ((Utf8String) this.buffer).compareTo(other);
}
public int compareTo(@Nonnull final Utf8String other) {
checkNotNull(other);
if (other == this.buffer) {
return 0;
}
if (this.buffer == null) {
return -1;
}
return this.buffer instanceof String
? -other.compareTo((String) this.buffer)
: ((Utf8String) this.buffer).compareTo(other);
}
@Override
public int compareTo(@Nonnull final UtfAnyString other) {
checkNotNull(other);
if (other.buffer == this.buffer) {
return 0;
}
if (other.buffer == null) {
return 1;
}
if (this.buffer == null) {
return -1;
}
if (this.buffer instanceof String) {
return other.buffer instanceof String
? ((String) this.buffer).compareTo((String) other.buffer)
: -((Utf8String) other.buffer).compareTo((String) this.buffer);
}
return ((Utf8String) this.buffer).compareTo((Utf8String) other.buffer);
}
public static UtfAnyString empty() {
return EMPTY;
}
@Override
public boolean equals(final Object other) {
if (other == null) {
return false;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return s.Length == 0;
default:
return ((Utf8String)this.buffer).getIsEmpty();
}
}
//C# TO JAVA CONVERTER TODO TASK: The following operator overload is not converted by C# to Java Converter:
public static implicit operator UtfAnyString(String utf16String)
{
return new UtfAnyString(utf16String);
}
//C# TO JAVA CONVERTER TODO TASK: The following operator overload is not converted by C# to Java Converter:
public static implicit operator string(UtfAnyString str)
{
return str.buffer == null ? null : str.buffer.toString();
}
@Override
public String toString()
{
// ReSharper disable once AssignNullToNotNullAttribute
return this.buffer == null ? null : this.buffer.toString();
}
public Utf8String ToUtf8String()
{
if (null == this.buffer)
{
return null;
if (other instanceof String) {
return this.equals((String) other);
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return Utf8String.TranscodeUtf16(s);
default:
return (Utf8String)this.buffer;
}
}
public boolean ReferenceEquals(UtfAnyString other)
{
return this.buffer == other.buffer;
}
public boolean equals(UtfAnyString other)
{
if (null == this.buffer)
{
return null == other.buffer;
if (other instanceof Utf8String) {
return this.equals((Utf8String) other);
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return other.equals(s);
default:
return other.equals((Utf8String)this.buffer);
}
}
public boolean equals(Utf8Span other)
{
return other.equals(this.buffer);
}
@Override
public boolean equals(Object obj)
{
switch (obj)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return this.equals(s);
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case Utf8String s:
case Utf8String s:
return this.equals(s);
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case UtfAnyString s:
case UtfAnyString s:
return this.equals(s);
if (other instanceof UtfAnyString) {
return this.equals((UtfAnyString) other);
}
return false;
}
public boolean equals(Utf8String other)
{
if (null == other)
{
public boolean equals(final String other) {
if (null == this.buffer) {
return null == other;
}
if (this.buffer instanceof String) {
return other.contentEquals(this.buffer); // skips the type check that String.equals performs
}
return ((Utf8String) this.buffer).equals(other);
}
public boolean equals(final Utf8String other) {
if (null == other) {
return null == this.buffer;
}
return other.equals(this.buffer);
}
public boolean equals(String other)
{
if (null == this.buffer)
{
return null == other;
public boolean equals(final UtfAnyString other) {
if (null == other) {
return false;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return String.equals(s, other);
default:
return ((Utf8String)this.buffer).equals(other);
if (null == this.buffer) {
return null == other.buffer;
}
}
public static boolean opEquals(UtfAnyString left, UtfAnyString right)
{
return left.equals(right.clone());
}
public static boolean opNotEquals(UtfAnyString left, UtfAnyString right)
{
return !left.equals(right.clone());
}
public static boolean opEquals(UtfAnyString left, String right)
{
return left.equals(right);
}
public static boolean opNotEquals(UtfAnyString left, String right)
{
return !left.equals(right);
}
public static boolean opEquals(String left, UtfAnyString right)
{
return right.equals(left);
}
public static boolean opNotEquals(String left, UtfAnyString right)
{
return !right.equals(left);
}
public static boolean opEquals(UtfAnyString left, Utf8String right)
{
return left.equals(right);
}
public static boolean opNotEquals(UtfAnyString left, Utf8String right)
{
return !left.equals(right);
}
public static boolean opEquals(Utf8String left, UtfAnyString right)
{
return right.equals(left);
}
public static boolean opNotEquals(Utf8String left, UtfAnyString right)
{
return !right.equals(left);
}
public static boolean opEquals(UtfAnyString left, Utf8Span right)
{
return left.equals(right);
}
public static boolean opNotEquals(UtfAnyString left, Utf8Span right)
{
return !left.equals(right);
}
public static boolean opEquals(Utf8Span left, UtfAnyString right)
{
return right.equals(left);
}
public static boolean opNotEquals(Utf8Span left, UtfAnyString right)
{
return !right.equals(left);
return this.buffer instanceof String ? other.buffer.equals(this.buffer) : this.buffer.equals(other.buffer);
}
@Override
public int hashCode()
{
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: uint hash1 = 5381;
int hash1 = 5381;
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: uint hash2 = hash1;
int hash2 = hash1;
public int hashCode() {
if (null == this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: There is no Java equivalent to 'unchecked' in this context:
//ORIGINAL LINE: return unchecked((int)(hash1 + (hash2 * 1566083941)));
return (int)(hash1 + (hash2 * 1566083941));
final long[] hash = { 5_381, 5_381 };
if (this.buffer == null) {
return NULL_HASHCODE;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
//C# TO JAVA CONVERTER TODO TASK: There is no equivalent to an 'unchecked' block in Java:
unchecked
{
Utf16LittleEndianCodePointEnumerator thisEnumerator = new Utf16LittleEndianCodePointEnumerator(s);
for (int i = 0; thisEnumerator.MoveNext(); i++)
{
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: uint c = thisEnumerator.Current;
int c = thisEnumerator.Current;
if (i % 2 == 0)
{
hash1 = ((hash1 << 5) + hash1) ^ c;
}
else
{
hash2 = ((hash2 << 5) + hash2) ^ c;
}
}
if (this.buffer instanceof String) {
return (int)(hash1 + (hash2 * 1566083941));
final int ignored = ((String) buffer).codePoints().reduce(0, (index, codePoint) -> {
if (index % 2 == 0) {
hash[0] = ((hash[0] << 5) + hash[0]) ^ codePoint;
} else {
hash[1] = ((hash[1] << 5) + hash[1]) ^ codePoint;
}
return index;
});
default:
return this.buffer.hashCode();
}
}
public static boolean opLessThan(UtfAnyString left, UtfAnyString right)
{
return left.CompareTo(right.clone()) < 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, UtfAnyString right)
{
return left.CompareTo(right.clone()) <= 0;
}
public static boolean opGreaterThan(UtfAnyString left, UtfAnyString right)
{
return left.CompareTo(right.clone()) > 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, UtfAnyString right)
{
return left.CompareTo(right.clone()) >= 0;
}
public static boolean opLessThan(UtfAnyString left, String right)
{
return left.CompareTo(right) < 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, String right)
{
return left.CompareTo(right) <= 0;
}
public static boolean opGreaterThan(UtfAnyString left, String right)
{
return left.CompareTo(right) > 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, String right)
{
return left.CompareTo(right) >= 0;
}
public static boolean opLessThan(String left, UtfAnyString right)
{
return right.CompareTo(left) >= 0;
}
public static boolean opLessThanOrEquals(String left, UtfAnyString right)
{
return right.CompareTo(left) > 0;
}
public static boolean opGreaterThan(String left, UtfAnyString right)
{
return right.CompareTo(left) <= 0;
}
public static boolean opGreaterThanOrEquals(String left, UtfAnyString right)
{
return right.CompareTo(left) < 0;
}
public static boolean opLessThan(UtfAnyString left, Utf8String right)
{
return left.CompareTo(right) < 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, Utf8String right)
{
return left.CompareTo(right) <= 0;
}
public static boolean opGreaterThan(UtfAnyString left, Utf8String right)
{
return left.CompareTo(right) > 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, Utf8String right)
{
return left.CompareTo(right) >= 0;
}
public static boolean opLessThan(Utf8String left, UtfAnyString right)
{
return right.CompareTo(left) >= 0;
}
public static boolean opLessThanOrEquals(Utf8String left, UtfAnyString right)
{
return right.CompareTo(left) > 0;
}
public static boolean opGreaterThan(Utf8String left, UtfAnyString right)
{
return right.CompareTo(left) <= 0;
}
public static boolean opGreaterThanOrEquals(Utf8String left, UtfAnyString right)
{
return right.CompareTo(left) < 0;
}
public static boolean opLessThan(UtfAnyString left, Utf8Span right)
{
return left.CompareTo(right) < 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, Utf8Span right)
{
return left.CompareTo(right) <= 0;
}
public static boolean opGreaterThan(UtfAnyString left, Utf8Span right)
{
return left.CompareTo(right) > 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, Utf8Span right)
{
return left.CompareTo(right) >= 0;
}
public static boolean opLessThan(Utf8Span left, UtfAnyString right)
{
return right.CompareTo(left) >= 0;
}
public static boolean opLessThanOrEquals(Utf8Span left, UtfAnyString right)
{
return right.CompareTo(left) > 0;
}
public static boolean opGreaterThan(Utf8Span left, UtfAnyString right)
{
return right.CompareTo(left) <= 0;
}
public static boolean opGreaterThanOrEquals(Utf8Span left, UtfAnyString right)
{
return right.CompareTo(left) < 0;
}
public int CompareTo(UtfAnyString other)
{
if (null == other.buffer)
{
return null == this.buffer ? 0 : 1;
return reduceHashCode(hash[0], hash[1]);
}
switch (other.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return this.CompareTo(s);
default:
return this.CompareTo((Utf8String)other.buffer);
}
return this.buffer.hashCode();
}
public int CompareTo(Utf8String other)
{
if (null == this.buffer)
{
return null == other ? 0 : -1;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return -other.getSpan().CompareTo(s);
default:
return -other.getSpan().CompareTo((Utf8String)this.buffer);
/**
* Returns the length of this character sequence. The length is the number
* of 16-bit {@code char}s in the sequence.
*
* @return the number of {@code char}s in this sequence
*
* @throws UnsupportedOperationException if this {@link UtfAnyString} is {@code null}
*/
@Override
public int length() {
if (this.buffer == null) {
throw new UnsupportedOperationException("String is null");
}
return this.buffer.length();
}
public int CompareTo(Utf8Span other)
{
if (null == this.buffer)
{
return -1;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return -other.CompareTo(s);
default:
return -other.CompareTo((Utf8String)this.buffer);
}
public static boolean opEquals(UtfAnyString left, UtfAnyString right) {
return left.equals(right.clone());
}
public int CompareTo(String other)
{
if (null == this.buffer)
{
return null == other ? 0 : -1;
}
switch (this.buffer)
{
//C# TO JAVA CONVERTER TODO TASK: Java has no equivalent to C# pattern variables in 'case' statements:
//ORIGINAL LINE: case string s:
case String s:
return String.Compare(s, other, StringComparison.Ordinal);
default:
return ((Utf8String)this.buffer).compareTo(other);
}
public static boolean opEquals(UtfAnyString left, String right) {
return left.equals(right);
}
public UtfAnyString clone()
{
UtfAnyString varCopy = new UtfAnyString();
public static boolean opEquals(String left, UtfAnyString right) {
return right.equals(left);
}
varCopy.buffer = this.buffer;
public static boolean opEquals(UtfAnyString left, Utf8String right) {
return left.equals(right);
}
return varCopy;
public static boolean opEquals(Utf8String left, UtfAnyString right) {
return right.equals(left);
}
public static boolean opGreaterThan(UtfAnyString left, UtfAnyString right) {
return left.compareTo(right.clone()) > 0;
}
public static boolean opGreaterThan(UtfAnyString left, String right) {
return left.compareTo(right) > 0;
}
public static boolean opGreaterThan(String left, UtfAnyString right) {
return right.compareTo(left) <= 0;
}
public static boolean opGreaterThan(UtfAnyString left, Utf8String right) {
return left.compareTo(right) > 0;
}
public static boolean opGreaterThan(Utf8String left, UtfAnyString right) {
return right.compareTo(left) <= 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, UtfAnyString right) {
return left.compareTo(right.clone()) >= 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, String right) {
return left.compareTo(right) >= 0;
}
public static boolean opGreaterThanOrEquals(String left, UtfAnyString right) {
return right.compareTo(left) < 0;
}
public static boolean opGreaterThanOrEquals(UtfAnyString left, Utf8String right) {
return left.compareTo(right) >= 0;
}
public static boolean opGreaterThanOrEquals(Utf8String left, UtfAnyString right) {
return right.compareTo(left) < 0;
}
public static boolean opLessThan(UtfAnyString left, UtfAnyString right) {
return left.compareTo(right.clone()) < 0;
}
public static boolean opLessThan(UtfAnyString left, String right) {
return left.compareTo(right) < 0;
}
public static boolean opLessThan(String left, UtfAnyString right) {
return right.compareTo(left) >= 0;
}
public static boolean opLessThan(UtfAnyString left, Utf8String right) {
return left.compareTo(right) < 0;
}
public static boolean opLessThan(Utf8String left, UtfAnyString right) {
return right.compareTo(left) >= 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, UtfAnyString right) {
return left.compareTo(right.clone()) <= 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, String right) {
return left.compareTo(right) <= 0;
}
public static boolean opLessThanOrEquals(String left, UtfAnyString right) {
return right.compareTo(left) > 0;
}
public static boolean opLessThanOrEquals(UtfAnyString left, Utf8String right) {
return left.compareTo(right) <= 0;
}
public static boolean opLessThanOrEquals(Utf8String left, UtfAnyString right) {
return right.compareTo(left) > 0;
}
public static boolean opNotEquals(UtfAnyString left, UtfAnyString right) {
return !left.equals(right.clone());
}
public static boolean opNotEquals(UtfAnyString left, String right) {
return !left.equals(right);
}
public static boolean opNotEquals(String left, UtfAnyString right) {
return !right.equals(left);
}
public static boolean opNotEquals(UtfAnyString left, Utf8String right) {
return !left.equals(right);
}
public static boolean opNotEquals(Utf8String left, UtfAnyString right) {
return !right.equals(left);
}
/**
* Returns a {@code CharSequence} that is a subsequence of this sequence
* <p>
* The subsequence starts with the {@code char} value at the specified index and ends with the{@code char} value at
* index {@code end - 1}. The length (in {@code char}s) of the returned sequence is {@code end - start}, so if
* {@code start == end}, an empty sequence is returned.
*
* @param start the start index, inclusive
* @param end the end index, exclusive
* @return the specified subsequence
* @throws IndexOutOfBoundsException if {@code start} or {@code end} are negative, {@code end} is greater than
* {@link UtfAnyString#length()}, or {@code start} is greater than {@code
* end}.
* @throws UnsupportedOperationException if string is {@code null}
*/
@Override
@Nonnull
public CharSequence subSequence(final int start, final int end) {
if (this.buffer == null) {
throw new UnsupportedOperationException("String is null");
}
return this.buffer.subSequence(start, end);
}
@Override
@Nonnull
public String toString() {
return String.valueOf(this.buffer);
}
public String toUtf16() {
if (null == this.buffer) {
return null;
}
return this.buffer instanceof String ? (String) this.buffer : this.buffer.toString();
}
public Utf8String toUtf8() {
if (null == this.buffer) {
return null;
}
return this.buffer instanceof String ? transcodeUtf16((String) this.buffer) : (Utf8String) this.buffer;
}
private static int reduceHashCode(final long h1, final long h2) {
return Long.valueOf(h1 + (h2 * 1_566_083_941L)).intValue();
}
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.layouts.Layout;
import com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutBit;
import com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutCode;
@@ -117,8 +116,8 @@ public final class RowBuffer {
HybridRowHeader header = this.ReadHeader(0).clone();
checkState(header.getVersion() == version);
Layout layout = resolver.Resolve(header.getSchemaId().clone());
checkState(SchemaId.opEquals(header.getSchemaId().clone(), layout.getSchemaId().clone()));
checkState(HybridRowHeader.Size + layout.getSize() <= this.length);
checkState(SchemaId.opEquals(header.getSchemaId().clone(), layout.schemaId().clone()));
checkState(HybridRowHeader.Size + layout.size() <= this.length);
}
/**
@@ -156,11 +155,11 @@ public final class RowBuffer {
return scopeOffset;
}
int index = layout.getNumFixed() + varIndex;
ReadOnlySpan<LayoutColumn> columns = layout.getColumns();
int index = layout.numFixed() + varIndex;
ReadOnlySpan<LayoutColumn> columns = layout.columns();
checkState(index <= columns.Length);
int offset = scopeOffset + layout.getSize();
for (int i = layout.getNumFixed(); i < index; i++) {
int offset = scopeOffset + layout.size();
for (int i = layout.numFixed(); i < index; i++) {
LayoutColumn col = columns[i];
if (this.ReadBit(scopeOffset, col.getNullBit().clone())) {
int lengthSizeInBytes;
@@ -277,14 +276,14 @@ public final class RowBuffer {
this.resolver = resolver;
// Ensure sufficient space for fixed schema fields.
this.Ensure(HybridRowHeader.Size + layout.getSize());
this.length = HybridRowHeader.Size + layout.getSize();
this.Ensure(HybridRowHeader.Size + layout.size());
this.length = HybridRowHeader.Size + layout.size();
// Clear all presence bits.
this.buffer.Slice(HybridRowHeader.Size, layout.getSize()).Fill(0);
this.buffer.Slice(HybridRowHeader.Size, layout.size()).Fill(0);
// Set the header.
this.WriteHeader(0, new HybridRowHeader(version, layout.getSchemaId().clone()));
this.WriteHeader(0, new HybridRowHeader(version, layout.schemaId().clone()));
}
/**
@@ -360,7 +359,7 @@ public final class RowBuffer {
//ORIGINAL LINE: ulong b = this.buffer[offset];
long b = this.buffer[offset];
if (b < 0x80L) {
lenInBytes.set(1);
lenInBytes.setAndGet(1);
return b;
}
@@ -375,7 +374,7 @@ public final class RowBuffer {
shift += 7;
} while (b >= 0x80L);
lenInBytes.set(shift / 7);
lenInBytes.setAndGet(shift / 7);
return retval;
}
@@ -625,14 +624,14 @@ public final class RowBuffer {
int token = (int)this.Read7BitEncodedUInt(offset, tempOut_sizeLenInBytes);
sizeLenInBytes = tempOut_sizeLenInBytes.get();
if (token < layout.getTokenizer().getCount()) {
pathLenInBytes.set(sizeLenInBytes);
pathOffset.set(offset);
pathLenInBytes.setAndGet(sizeLenInBytes);
pathOffset.setAndGet(offset);
return token;
}
int numBytes = token - layout.getTokenizer().getCount();
pathLenInBytes.set(numBytes + sizeLenInBytes);
pathOffset.set(offset + sizeLenInBytes);
pathLenInBytes.setAndGet(numBytes + sizeLenInBytes);
pathOffset.setAndGet(offset + sizeLenInBytes);
return token;
}
@@ -1065,7 +1064,7 @@ public final class RowBuffer {
{
Layout udt = this.resolver.Resolve(edit.get().cellTypeArgs.getSchemaId().clone());
int valueOffset = this.ComputeVariableValueOffset(udt, edit.get().valueOffset,
udt.getNumVariable());
udt.numVariable());
RowCursor tempVar6 = new RowCursor();
tempVar6.scopeType = scopeType;
tempVar6.scopeTypeArgs = edit.get().cellTypeArgs.clone();
@@ -1407,7 +1406,7 @@ public final class RowBuffer {
}
int valueOffset = edit.get().valueOffset + 1;
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -1446,7 +1445,7 @@ public final class RowBuffer {
this.WriteSparseMetadata(edit, scopeType, typeArgs.clone(), metaBytes);
this.WriteSparseTypeCode(edit.get().valueOffset, LayoutCode.EndScope);
checkState(spaceNeeded == metaBytes + numBytes);
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -1792,7 +1791,7 @@ public final class RowBuffer {
this.WriteSparseMetadata(edit, scopeType, TypeArgumentList.Empty, metaBytes);
this.WriteSparseTypeCode(edit.get().valueOffset, LayoutCode.EndScope);
checkState(spaceNeeded == metaBytes + numBytes);
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = TypeArgumentList.Empty;
newScope.get().start = edit.get().valueOffset;
@@ -1849,7 +1848,7 @@ public final class RowBuffer {
this.WriteSparseTypeCode(valueOffset, LayoutCode.EndScope);
checkState(spaceNeeded == metaBytes + numBytes);
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -1872,8 +1871,8 @@ public final class RowBuffer {
public void WriteSparseUDT(Reference<RowCursor> edit, LayoutScope scopeType, Layout udt,
UpdateOptions options, Out<RowCursor> newScope) {
TypeArgumentList typeArgs = new TypeArgumentList(udt.getSchemaId().clone());
int numBytes = udt.getSize() + (LayoutCode.SIZE / Byte.SIZE);
TypeArgumentList typeArgs = new TypeArgumentList(udt.schemaId().clone());
int numBytes = udt.size() + (LayoutCode.SIZE / Byte.SIZE);
int metaBytes;
Out<Integer> tempOut_metaBytes = new Out<Integer>();
int spaceNeeded;
@@ -1888,13 +1887,13 @@ public final class RowBuffer {
this.WriteSparseMetadata(edit, scopeType, typeArgs.clone(), metaBytes);
// Clear all presence bits.
this.buffer.Slice(edit.get().valueOffset, udt.getSize()).Fill(0);
this.buffer.Slice(edit.get().valueOffset, udt.size()).Fill(0);
// Write scope terminator.
int valueOffset = edit.get().valueOffset + udt.getSize();
int valueOffset = edit.get().valueOffset + udt.size();
this.WriteSparseTypeCode(valueOffset, LayoutCode.EndScope);
checkState(spaceNeeded == metaBytes + numBytes);
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -2083,7 +2082,7 @@ public final class RowBuffer {
checkState(spaceNeeded == metaBytes + numBytes);
this.WriteUInt32(edit.get().valueOffset, 0);
int valueOffset = edit.get().valueOffset + (Integer.SIZE / Byte.SIZE); // Point after the Size
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -2112,7 +2111,7 @@ public final class RowBuffer {
checkState(spaceNeeded == metaBytes + numBytes);
this.WriteUInt32(edit.get().valueOffset, 0);
int valueOffset = edit.get().valueOffset + (Integer.SIZE / Byte.SIZE); // Point after the Size
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -2141,7 +2140,7 @@ public final class RowBuffer {
checkState(spaceNeeded == metaBytes + numBytes);
this.WriteUInt32(edit.get().valueOffset, 0);
int valueOffset = edit.get().valueOffset + (Integer.SIZE / Byte.SIZE); // Point after the Size
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -2170,7 +2169,7 @@ public final class RowBuffer {
int numWritten = this.WriteDefaultValue(edit.get().valueOffset, scopeType, typeArgs.clone());
checkState(numBytes == numWritten);
checkState(spaceNeeded == metaBytes + numBytes);
newScope.set(new RowCursor());
newScope.setAndGet(new RowCursor());
newScope.get().scopeType = scopeType;
newScope.get().scopeTypeArgs = typeArgs.clone();
newScope.get().start = edit.get().valueOffset;
@@ -2701,15 +2700,15 @@ public final class RowBuffer {
// Compute the metadata offsets
if (edit.get().scopeType.HasImplicitTypeCode(edit)) {
metaBytes.set(0);
metaBytes.setAndGet(0);
} else {
metaBytes.set(cellType.CountTypeArgument(typeArgs.clone()));
metaBytes.setAndGet(cellType.CountTypeArgument(typeArgs.clone()));
}
if (!edit.get().scopeType.IsIndexedScope) {
checkState(edit.get().writePath != null);
int pathLenInBytes = RowBuffer.CountSparsePath(edit);
metaBytes.set(metaBytes.get() + pathLenInBytes);
metaBytes.setAndGet(metaBytes.get() + pathLenInBytes);
}
if (edit.get().exists) {
@@ -2717,8 +2716,8 @@ public final class RowBuffer {
spaceAvailable = this.SparseComputeSize(edit);
}
spaceNeeded.set(options == RowOptions.Delete ? 0 : metaBytes.get() + numBytes);
shift.set(spaceNeeded.get() - spaceAvailable);
spaceNeeded.setAndGet(options == RowOptions.Delete ? 0 : metaBytes.get() + numBytes);
shift.setAndGet(spaceNeeded.get() - spaceAvailable);
if (shift.get() > 0) {
this.Ensure(this.length + shift.get());
}
@@ -2772,15 +2771,15 @@ public final class RowBuffer {
}
if (isVarint) {
spaceNeeded.set(numBytes);
spaceNeeded.setAndGet(numBytes);
} else {
spaceAvailable += (int)existingValueBytes; // size already in spaceAvailable
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: spaceNeeded = numBytes + RowBuffer.Count7BitEncodedUInt((ulong)numBytes);
spaceNeeded.set(numBytes + RowBuffer.Count7BitEncodedUInt(numBytes));
spaceNeeded.setAndGet(numBytes + RowBuffer.Count7BitEncodedUInt(numBytes));
}
shift.set(spaceNeeded.get() - spaceAvailable);
shift.setAndGet(spaceNeeded.get() - spaceAvailable);
if (shift.get() > 0) {
this.Ensure(this.length + shift.get());
this.buffer.Slice(offset + spaceAvailable, this.length - (offset + spaceAvailable)).CopyTo(this.buffer.Slice(offset + spaceNeeded.get()));
@@ -2798,8 +2797,8 @@ public final class RowBuffer {
private boolean InitReadFrom(HybridRowVersion rowVersion) {
HybridRowHeader header = this.ReadHeader(0).clone();
Layout layout = this.resolver.Resolve(header.getSchemaId().clone());
checkState(SchemaId.opEquals(header.getSchemaId().clone(), layout.getSchemaId().clone()));
return (header.getVersion() == rowVersion) && (HybridRowHeader.Size + layout.getSize() <= this.length);
checkState(SchemaId.opEquals(header.getSchemaId().clone(), layout.schemaId().clone()));
return (header.getVersion() == rowVersion) && (HybridRowHeader.Size + layout.size() <= this.length);
}
/**

View File

@@ -9,7 +9,6 @@ package com.azure.data.cosmos.serialization.hybridrow;
// ReSharper disable InconsistentNaming
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.layouts.Layout;
import com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutEndScope;
@@ -107,7 +106,7 @@ public final class RowCursor {
SchemaId schemaId = row.get().ReadSchemaId(1).clone();
Layout layout = row.get().getResolver().Resolve(schemaId.clone());
int sparseSegmentOffset = row.get().ComputeVariableValueOffset(layout, HybridRowHeader.Size,
layout.getNumVariable());
layout.numVariable());
RowCursor tempVar = new RowCursor();
tempVar.layout = layout;
tempVar.scopeType = LayoutType.UDT;

View File

@@ -4,7 +4,6 @@
package com.azure.data.cosmos.serialization.hybridrow;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutCode;
import com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutEndScope;
@@ -123,7 +122,7 @@ public final class RowCursorExtensions {
// TODO: C# TO JAVA CONVERTER: There is no preprocessor in Java:
//#if DEBUG
childScope.set(null);
childScope.setAndGet(null);
//#endif
}
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.io;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Float128;
import com.azure.data.cosmos.serialization.hybridrow.NullValue;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -111,8 +110,8 @@ public final class RowReader {
public RowReader(Reference<RowBuffer> row, final Checkpoint checkpoint) {
this.row = row.get().clone();
this.columns = checkpoint.Cursor.layout.getColumns();
this.schematizedCount = checkpoint.Cursor.layout.getNumFixed() + checkpoint.Cursor.layout.getNumVariable();
this.columns = checkpoint.Cursor.layout.columns();
this.schematizedCount = checkpoint.Cursor.layout.numFixed() + checkpoint.Cursor.layout.numVariable();
this.state = checkpoint.State;
this.cursor = checkpoint.Cursor.clone();
@@ -122,8 +121,8 @@ public final class RowReader {
private RowReader(Reference<RowBuffer> row, final RowCursor scope) {
this.cursor = scope.clone();
this.row = row.get().clone();
this.columns = this.cursor.layout.getColumns();
this.schematizedCount = this.cursor.layout.getNumFixed() + this.cursor.layout.getNumVariable();
this.columns = this.cursor.layout.columns();
this.schematizedCount = this.cursor.layout.numFixed() + this.cursor.layout.numVariable();
this.state = States.None;
this.columnIndex = -1;
@@ -354,7 +353,7 @@ public final class RowReader {
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Result r = this.ReadBinary(out ReadOnlySpan<byte> span);
Result r = this.ReadBinary(out span);
value.set((r == Result.Success) ? span.ToArray() :)
value.setAndGet((r == Result.Success) ? span.ToArray() :)
default
return r;
}
@@ -373,17 +372,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutBinary)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseBinary(tempReference_cursor));
value.setAndGet(this.row.ReadSparseBinary(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -400,17 +399,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutBoolean)) {
value.set(false);
value.setAndGet(false);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseBool(tempReference_cursor));
value.setAndGet(this.row.ReadSparseBool(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(false);
value.setAndGet(false);
return Result.Failure;
}
}
@@ -427,17 +426,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutDateTime)) {
value.set(LocalDateTime.MIN);
value.setAndGet(LocalDateTime.MIN);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseDateTime(tempReference_cursor));
value.setAndGet(this.row.ReadSparseDateTime(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(LocalDateTime.MIN);
value.setAndGet(LocalDateTime.MIN);
return Result.Failure;
}
}
@@ -454,17 +453,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutDecimal)) {
value.set(new BigDecimal(0));
value.setAndGet(new BigDecimal(0));
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseDecimal(tempReference_cursor));
value.setAndGet(this.row.ReadSparseDecimal(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(new BigDecimal(0));
value.setAndGet(new BigDecimal(0));
return Result.Failure;
}
}
@@ -481,17 +480,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value.clone());
case Sparse:
if (!(this.cursor.cellType instanceof LayoutFloat128)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseFloat128(tempReference_cursor).clone());
value.setAndGet(this.row.ReadSparseFloat128(tempReference_cursor).clone());
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -508,17 +507,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutFloat32)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseFloat32(tempReference_cursor));
value.setAndGet(this.row.ReadSparseFloat32(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -535,17 +534,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutFloat64)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseFloat64(tempReference_cursor));
value.setAndGet(this.row.ReadSparseFloat64(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -562,17 +561,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutGuid)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseGuid(tempReference_cursor));
value.setAndGet(this.row.ReadSparseGuid(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -589,17 +588,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutInt16)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseInt16(tempReference_cursor));
value.setAndGet(this.row.ReadSparseInt16(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -616,17 +615,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutInt32)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseInt32(tempReference_cursor));
value.setAndGet(this.row.ReadSparseInt32(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -643,17 +642,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutInt64)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseInt64(tempReference_cursor));
value.setAndGet(this.row.ReadSparseInt64(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -670,17 +669,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutInt8)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseInt8(tempReference_cursor));
value.setAndGet(this.row.ReadSparseInt8(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -697,17 +696,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value.clone());
case Sparse:
if (!(this.cursor.cellType instanceof LayoutMongoDbObjectId)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseMongoDbObjectId(tempReference_cursor).clone());
value.setAndGet(this.row.ReadSparseMongoDbObjectId(tempReference_cursor).clone());
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -724,17 +723,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value.clone());
case Sparse:
if (!(this.cursor.cellType instanceof LayoutNull)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseNull(tempReference_cursor).clone());
value.setAndGet(this.row.ReadSparseNull(tempReference_cursor).clone());
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -807,7 +806,7 @@ public final class RowReader {
// TODO: C# TO JAVA CONVERTER: The following method call contained an unresolved 'out' keyword - these
// cannot be converted using the 'Out' helper class unless the method is within the code being modified:
Result r = this.ReadString(out span);
value.set((r == Result.Success) ? span.toString() :)
value.setAndGet((r == Result.Success) ? span.toString() :)
default
return r;
}
@@ -823,7 +822,7 @@ public final class RowReader {
// TODO: C# TO JAVA CONVERTER: The following method call contained an unresolved 'out' keyword - these
// cannot be converted using the 'Out' helper class unless the method is within the code being modified:
Result r = this.ReadString(out span);
value.set((r == Result.Success) ? Utf8String.CopyFrom(span) :)
value.setAndGet((r == Result.Success) ? Utf8String.CopyFrom(span) :)
default
return r;
}
@@ -840,17 +839,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUtf8)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseString(tempReference_cursor));
value.setAndGet(this.row.ReadSparseString(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -869,17 +868,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUInt16)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseUInt16(tempReference_cursor));
value.setAndGet(this.row.ReadSparseUInt16(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -898,17 +897,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUInt32)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseUInt32(tempReference_cursor));
value.setAndGet(this.row.ReadSparseUInt32(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -927,17 +926,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUInt64)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseUInt64(tempReference_cursor));
value.setAndGet(this.row.ReadSparseUInt64(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -956,17 +955,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUInt8)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseUInt8(tempReference_cursor));
value.setAndGet(this.row.ReadSparseUInt8(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -983,17 +982,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value.clone());
case Sparse:
if (!(this.cursor.cellType instanceof LayoutUnixDateTime)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseUnixDateTime(tempReference_cursor).clone());
value.setAndGet(this.row.ReadSparseUnixDateTime(tempReference_cursor).clone());
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -1010,17 +1009,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutVarInt)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseVarInt(tempReference_cursor));
value.setAndGet(this.row.ReadSparseVarInt(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -1039,17 +1038,17 @@ public final class RowReader {
return this.ReadPrimitiveValue(value);
case Sparse:
if (!(this.cursor.cellType instanceof LayoutVarUInt)) {
value.set(0);
value.setAndGet(0);
return Result.TypeMismatch;
}
Reference<RowCursor> tempReference_cursor =
new Reference<RowCursor>(this.cursor);
value.set(this.row.ReadSparseVarUInt(tempReference_cursor));
value.setAndGet(this.row.ReadSparseVarUInt(tempReference_cursor));
this.cursor = tempReference_cursor.get();
return Result.Success;
default:
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
}
@@ -1107,7 +1106,7 @@ public final class RowReader {
LayoutColumn col = this.columns[this.columnIndex];
LayoutType t = this.columns[this.columnIndex].Type;
if (!(t instanceof LayoutType<TValue>)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
@@ -1130,7 +1129,7 @@ public final class RowReader {
return tempVar2;
default:
throw new IllegalStateException();
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -1145,7 +1144,7 @@ public final class RowReader {
LayoutColumn col = this.columns[this.columnIndex];
LayoutType t = this.columns[this.columnIndex].Type;
if (!(t instanceof ILayoutUtf8SpanReadable)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
@@ -1167,7 +1166,7 @@ public final class RowReader {
return tempVar2;
default:
throw new IllegalStateException();
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}
@@ -1183,7 +1182,7 @@ public final class RowReader {
LayoutColumn col = this.columns[this.columnIndex];
LayoutType t = this.columns[this.columnIndex].Type;
if (!(t instanceof ILayoutSpanReadable<TElement>)) {
value.set(null);
value.setAndGet(null);
return Result.TypeMismatch;
}
@@ -1204,7 +1203,7 @@ public final class RowReader {
return tempVar2;
default:
throw new IllegalStateException();
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.io;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import java.util.ArrayList;
@@ -61,11 +60,11 @@ public final class RowReaderExtensions {
});
if (r != Result.Success) {
list.set(null);
list.setAndGet(null);
return r;
}
list.set(ctx.List);
list.setAndGet(ctx.List);
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.io;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Float128;
import com.azure.data.cosmos.serialization.hybridrow.NullValue;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -169,13 +168,13 @@ public final class RowWriter {
RowWriter writer = new RowWriter(row, tempReference_scope);
scope = tempReference_scope.get();
TypeArgument typeArg = new TypeArgument(LayoutType.UDT,
new TypeArgumentList(scope.layout.getSchemaId().clone()));
new TypeArgumentList(scope.layout.schemaId().clone()));
Reference<RowWriter> tempReference_writer =
new Reference<RowWriter>(writer);
// TODO: C# TO JAVA CONVERTER: The following line could not be converted:
Result result = func(ref writer, typeArg, context);
writer = tempReference_writer.get();
row.set(writer.row.clone());
row.setAndGet(writer.row.clone());
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.json;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Float128;
import com.azure.data.cosmos.serialization.hybridrow.NullValue;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -43,13 +42,13 @@ public final class RowReaderJsonExtensions {
ctx.Builder.append("{");
Result result = RowReaderJsonExtensions.ToJson(reader, ctx.clone());
if (result != Result.Success) {
str.set(null);
str.setAndGet(null);
return result;
}
ctx.Builder.append(ctx.NewLine);
ctx.Builder.append("}");
str.set(ctx.Builder.toString());
str.setAndGet(ctx.Builder.toString());
return Result.Success;
}

View File

@@ -6,6 +6,7 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Utf8String;
import com.azure.data.cosmos.core.UtfAnyString;
import com.azure.data.cosmos.serialization.hybridrow.SchemaId;
import com.azure.data.cosmos.serialization.hybridrow.schemas.Namespace;
import com.azure.data.cosmos.serialization.hybridrow.schemas.Schema;
@@ -28,69 +29,43 @@ import java.util.HashMap;
*/
public final class Layout {
// TODO: C# TO JAVA CONVERTER:
// Java annotations will not correspond to .NET attributes:
// ORIGINAL LINE:
// [SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "Type is immutable.")] public static readonly Layout Empty = SystemSchema.LayoutResolver.Resolve(SystemSchema.EmptySchemaId);
public static final Layout EMPTY = SystemSchema.LayoutResolver.Resolve(SystemSchema.EmptySchemaId);
public static final Layout Empty = SystemSchema.LayoutResolver.Resolve(SystemSchema.EmptySchemaId);
/**
* Name of the layout.
* <p>
* Usually this is the name of the {@link Schema} from which this {@link Layout} was generated.
*/
private String Name;
/**
* The number of bit mask bytes allocated within the layout.
* <p>
* A presence bit is allocated for each fixed and variable-length field. Sparse columns
* never have presence bits. Fixed boolean allocate an additional bit from the bitmask to store their
* value.
*/
private int NumBitmaskBytes;
/**
* The number of fixed columns.
*/
private int NumFixed;
/**
* The number of variable-length columns.
*/
private int NumVariable;
/**
* Unique identifier of the schema from which this {@link Layout} was generated.
*/
private com.azure.data.cosmos.serialization.hybridrow.SchemaId SchemaId = new SchemaId();
/**
* Minimum required size of a row of this layout.
* <p>
* This size excludes all sparse columns, and assumes all columns (including variable) are
* null.
*/
private int Size;
private HashMap<Utf8String, LayoutColumn> pathMap;
private HashMap<String, LayoutColumn> pathStringMap;
private LayoutColumn[] topColumns;
private final String name;
private final int numBitmaskBytes;
private final int numFixed;
private final int numVariable;
private final HashMap<Utf8String, LayoutColumn> pathMap;
private final HashMap<String, LayoutColumn> pathStringMap;
private final SchemaId schemaId = new SchemaId();
private final int size;
private final StringTokenizer tokenizer;
private final LayoutColumn[] topColumns;
public Layout(String name, SchemaId schemaId, int numBitmaskBytes, int minRequiredSize, ArrayList<LayoutColumn> columns) {
this.Name = name;
this.SchemaId = schemaId.clone();
this.NumBitmaskBytes = numBitmaskBytes;
this.Size = minRequiredSize;
this.Tokenizer = new StringTokenizer();
this.name = name;
this.schemaId = schemaId.clone();
this.numBitmaskBytes = numBitmaskBytes;
this.size = minRequiredSize;
this.tokenizer = new StringTokenizer();
this.pathMap = new HashMap<Utf8String, LayoutColumn>(columns.size(), SamplingUtf8StringComparer.Default);
this.pathStringMap = new HashMap<String, LayoutColumn>(columns.size());
this.NumFixed = 0;
this.NumVariable = 0;
ArrayList<LayoutColumn> top = new ArrayList<LayoutColumn>(columns.size());
final ArrayList<LayoutColumn> top = new ArrayList<LayoutColumn>(columns.size());
int numFixed = 0;
int numVariable = 0;
for (LayoutColumn c : columns) {
this.getTokenizer().Add(c.getPath());
this.tokenizer().add(c.getPath());
this.pathMap.put(c.getFullPath(), c);
this.pathStringMap.put(c.getFullPath().toString(), c);
if (c.getStorage() == StorageKind.Fixed) {
this.NumFixed = this.getNumFixed() + 1;
numFixed++;
} else if (c.getStorage() == StorageKind.Variable) {
this.NumVariable = this.getNumVariable() + 1;
numVariable++;
}
if (c.getParent() == null) {
@@ -98,40 +73,11 @@ public final class Layout {
}
}
this.numFixed = numFixed;
this.numVariable = numVariable;
this.topColumns = top.toArray(new LayoutColumn[0]);
}
/**
* The set of top level columns defined in the layout (in left-to-right order).
*/
public ReadOnlySpan<LayoutColumn> getColumns() {
return this.topColumns.AsSpan();
}
public String getName() {
return Name;
}
public int getNumBitmaskBytes() {
return NumBitmaskBytes;
}
public int getNumFixed() {
return NumFixed;
}
public int getNumVariable() {
return NumVariable;
}
public SchemaId getSchemaId() {
return SchemaId;
}
public int getSize() {
return Size;
}
/**
* Finds a column specification for a column with a matching path.
*
@@ -141,16 +87,17 @@ public final class Layout {
*/
public boolean TryFind(UtfAnyString path, Out<LayoutColumn> column) {
if (path.IsNull) {
column.set(null);
if (path.isNull()) {
column.setAndGet(null);
return false;
}
if (path.IsUtf8) {
return (this.pathMap.containsKey(path.ToUtf8String()) && (column.set(this.pathMap.get(path.ToUtf8String()))) == column.get());
if (path.isUtf8()) {
return (this.pathMap.containsKey(path.toUtf8()) && (column.setAndGet(this.pathMap.get(path.toUtf8()))) == column.get());
}
return (this.pathStringMap.containsKey(path) && (column.set(this.pathStringMap.get(path))) == column.get());
String value = path.toUtf16();
return (this.pathStringMap.containsKey(value) && (column.setAndGet(this.pathStringMap.get(value))) == column.get());
}
/**
@@ -161,19 +108,80 @@ public final class Layout {
* @return True if a column with the path is found, otherwise false.
*/
public boolean TryFind(String path, Out<LayoutColumn> column) {
return (this.pathStringMap.containsKey(path) && (column.set(this.pathStringMap.get(path))) == column.get());
return (this.pathStringMap.containsKey(path) && (column.setAndGet(this.pathStringMap.get(path))) == column.get());
}
/**
* Returns a human readable diagnostic string representation of this {@link Layout}.
* The set of top level columns defined in the layout (in left-to-right order).
*/
public ReadOnlySpan<LayoutColumn> columns() {
return this.topColumns.AsSpan();
}
/**
* Name of the layout.
* <p>
* Usually this is the name of the {@link Schema} from which this {@link Layout} was generated.
*/
public String name() {
return this.name;
}
/**
* The number of bit mask bytes allocated within the layout.
* <p>
* A presence bit is allocated for each fixed and variable-length field. Sparse columns never have presence bits.
* Fixed boolean allocate an additional bit from the bitmask to store their value.
*/
public int numBitmaskBytes() {
return this.numBitmaskBytes;
}
/**
* The number of fixed columns.
*/
public int numFixed() {
return this.numFixed;
}
/**
* The number of variable-length columns.
*/
public int numVariable() {
return this.numVariable;
}
/**
* Unique identifier of the schema from which this {@link Layout} was generated.
*/
public SchemaId schemaId() {
return this.schemaId;
}
/**
* Minimum required size of a row of this layout.
* <p>
* This size excludes all sparse columns, and assumes all columns (including variable) are
* null.
*/
public int size() {
return this.size;
}
/**
* Returns a human readable diagnostic string representation of this {@link Layout}
* <p>
* This representation should only be used for debugging and diagnostic purposes.
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Layout:\n");
sb.append(String.format("\tCount: %1$s\n", this.topColumns.length));
sb.append(String.format("\tFixedSize: %1$s\n", this.getSize()));
sb.append(String.format("\tFixedSize: %1$s\n", this.size()));
for (LayoutColumn c : this.topColumns) {
if (c.getType().getIsFixed()) {
if (c.getType().getIsBool()) {
@@ -192,9 +200,7 @@ public final class Layout {
/**
* A tokenizer for path strings.
*/
// TODO: C# TO JAVA CONVERTER: Java annotations will not correspond to .NET attributes:
//ORIGINAL LINE: [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Bug in
// Analyzer. This is an auto-property not a method.")] public StringTokenizer Tokenizer
private StringTokenizer getTokenizer() {
public StringTokenizer tokenizer() {
return this.tokenizer;
}
}

View File

@@ -48,7 +48,7 @@ public final class LayoutArray extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, this.getTypeArg().clone(), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -44,7 +43,7 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Result r = this.ReadFixed(ref b, ref scope, col, out ReadOnlySpan<byte> span);
Result r = this.ReadFixed(b, scope, col, out span);
value.set((r == Result.Success) ? span.ToArray() :)
value.setAndGet((r == Result.Success) ? span.ToArray() :)
default
return r;
}
@@ -57,11 +56,11 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
checkArgument(scope.get().scopeType instanceof LayoutUDT);
checkArgument(col.getSize() >= 0);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadFixedBinary(scope.get().start + col.getOffset(), col.getSize()));
value.setAndGet(b.get().ReadFixedBinary(scope.get().start + col.getOffset(), col.getSize()));
return Result.Success;
}
@@ -75,7 +74,7 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Result r = this.ReadSparse(ref b, ref edit, out ReadOnlySpan<byte> span);
Result r = this.ReadSparse(b, edit, out span);
value.set((r == Result.Success) ? span.ToArray() :)
value.setAndGet((r == Result.Success) ? span.ToArray() :)
default
return r;
}
@@ -85,11 +84,11 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
public Result ReadSparse(Reference<RowBuffer> b, Reference<RowCursor> edit, Out<ReadOnlySpan<Byte>> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseBinary(edit));
value.setAndGet(b.get().ReadSparseBinary(edit));
return Result.Success;
}
@@ -105,7 +104,7 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Result r = this.ReadVariable(ref b, ref scope, col, out ReadOnlySpan<byte> span);
Result r = this.ReadVariable(b, scope, col, out span);
value.set((r == Result.Success) ? span.ToArray() :)
value.setAndGet((r == Result.Success) ? span.ToArray() :)
default
return r;
}
@@ -117,13 +116,13 @@ public final class LayoutBinary extends LayoutType<byte[]> implements ILayoutSpa
, Out<ReadOnlySpan<Byte>> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
int varOffset = b.get().ComputeVariableValueOffset(scope.get().layout, scope.get().start,
col.getOffset());
value.set(b.get().ReadVariableBinary(varOffset));
value.setAndGet(b.get().ReadVariableBinary(varOffset));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -38,11 +37,11 @@ public final class LayoutBoolean extends LayoutType<Boolean> {
Out<Boolean> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(false);
value.setAndGet(false);
return Result.NotFound;
}
value.set(b.get().ReadBit(scope.get().start, col.getBoolBit().clone()));
value.setAndGet(b.get().ReadBit(scope.get().start, col.getBoolBit().clone()));
return Result.Success;
}
@@ -51,11 +50,11 @@ public final class LayoutBoolean extends LayoutType<Boolean> {
Out<Boolean> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(false);
value.setAndGet(false);
return result;
}
value.set(b.get().ReadSparseBool(edit));
value.setAndGet(b.get().ReadSparseBool(edit));
return Result.Success;
}

View File

@@ -150,7 +150,7 @@ public final class LayoutCompiler {
private static LayoutType LogicalToPhysicalType(Namespace ns, PropertyType logicalType,
Out<TypeArgumentList> typeArgs) {
typeArgs.set(TypeArgumentList.Empty);
typeArgs.setAndGet(TypeArgumentList.Empty);
boolean tempVar =
(logicalType instanceof ScopePropertyType ? (ScopePropertyType)logicalType : null).getImmutable();
boolean immutable =
@@ -218,7 +218,7 @@ public final class LayoutCompiler {
itemType = itemType.Immutable ? LayoutType.ImmutableNullable : LayoutType.Nullable;
}
typeArgs.set(new TypeArgumentList(new TypeArgument[] { new TypeArgument(itemType,
typeArgs.setAndGet(new TypeArgumentList(new TypeArgument[] { new TypeArgument(itemType,
itemTypeArgs.clone()) }));
return immutable ? LayoutType.ImmutableTypedArray : LayoutType.TypedArray;
}
@@ -238,7 +238,7 @@ public final class LayoutCompiler {
itemType = itemType.Immutable ? LayoutType.ImmutableNullable : LayoutType.Nullable;
}
typeArgs.set(new TypeArgumentList(new TypeArgument[] { new TypeArgument(itemType,
typeArgs.setAndGet(new TypeArgumentList(new TypeArgument[] { new TypeArgument(itemType,
itemTypeArgs.clone()) }));
return immutable ? LayoutType.ImmutableTypedSet : LayoutType.TypedSet;
}
@@ -271,7 +271,7 @@ public final class LayoutCompiler {
valueType = valueType.Immutable ? LayoutType.ImmutableNullable : LayoutType.Nullable;
}
typeArgs.set(new TypeArgumentList(new TypeArgument[]
typeArgs.setAndGet(new TypeArgumentList(new TypeArgument[]
{
new TypeArgument(keyType, keyTypeArgs.clone()),
new TypeArgument(valueType, valueTypeArgs.clone())
@@ -301,7 +301,7 @@ public final class LayoutCompiler {
args[i] = new TypeArgument(itemType, itemTypeArgs.clone());
}
typeArgs.set(new TypeArgumentList(args));
typeArgs.setAndGet(new TypeArgumentList(args));
return immutable ? LayoutType.ImmutableTypedTuple : LayoutType.TypedTuple;
case Tagged:
@@ -329,7 +329,7 @@ public final class LayoutCompiler {
tgArgs[i + 1] = new TypeArgument(itemType, itemTypeArgs.clone());
}
typeArgs.set(new TypeArgumentList(tgArgs));
typeArgs.setAndGet(new TypeArgumentList(tgArgs));
switch (tg.getItems().size()) {
case 1:
return immutable ? LayoutType.ImmutableTagged : LayoutType.Tagged;
@@ -358,7 +358,7 @@ public final class LayoutCompiler {
up.getName(), up.getSchemaId().clone()));
}
typeArgs.set(new TypeArgumentList(udtSchema.getSchemaId().clone()));
typeArgs.setAndGet(new TypeArgumentList(udtSchema.getSchemaId().clone()));
return immutable ? LayoutType.ImmutableUDT : LayoutType.UDT;
default:

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -35,11 +34,11 @@ public final class LayoutDateTime extends LayoutType<DateTime> {
Out<LocalDateTime> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(LocalDateTime.MIN);
value.setAndGet(LocalDateTime.MIN);
return Result.NotFound;
}
value.set(b.get().ReadDateTime(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadDateTime(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -48,11 +47,11 @@ public final class LayoutDateTime extends LayoutType<DateTime> {
Out<LocalDateTime> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(LocalDateTime.MIN);
value.setAndGet(LocalDateTime.MIN);
return result;
}
value.set(b.get().ReadSparseDateTime(edit));
value.setAndGet(b.get().ReadSparseDateTime(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -36,11 +35,11 @@ public final class LayoutDecimal extends LayoutType<BigDecimal> {
Out<BigDecimal> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(new BigDecimal(0));
value.setAndGet(new BigDecimal(0));
return Result.NotFound;
}
value.set(b.get().ReadDecimal(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadDecimal(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -49,11 +48,11 @@ public final class LayoutDecimal extends LayoutType<BigDecimal> {
Out<BigDecimal> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(new BigDecimal(0));
value.setAndGet(new BigDecimal(0));
return result;
}
value.set(b.get().ReadSparseDecimal(edit));
value.setAndGet(b.get().ReadSparseDecimal(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -40,7 +39,7 @@ public final class LayoutEndScope extends LayoutScope {
public Result WriteScope(Reference<RowBuffer> b, Reference<RowCursor> scope,
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Contract.Fail("Cannot write an EndScope directly");
value.set(null);
value.setAndGet(null);
return Result.Failure;
}
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Float128;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
@@ -34,11 +33,11 @@ public final class LayoutFloat128 extends LayoutType<com.azure.data.cosmos.seria
Out<Float128> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadFloat128(scope.get().start + col.getOffset()).clone());
value.setAndGet(b.get().ReadFloat128(scope.get().start + col.getOffset()).clone());
return Result.Success;
}
@@ -47,11 +46,11 @@ public final class LayoutFloat128 extends LayoutType<com.azure.data.cosmos.seria
Out<Float128> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseFloat128(edit).clone());
value.setAndGet(b.get().ReadSparseFloat128(edit).clone());
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutFloat32 extends LayoutType<Float> {
Out<Float> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadFloat32(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadFloat32(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutFloat32 extends LayoutType<Float> {
Out<Float> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseFloat32(edit));
value.setAndGet(b.get().ReadSparseFloat32(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutFloat64 extends LayoutType<Double> {
Out<Double> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadFloat64(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadFloat64(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutFloat64 extends LayoutType<Double> {
Out<Double> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseFloat64(edit));
value.setAndGet(b.get().ReadSparseFloat64(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -35,11 +34,11 @@ public final class LayoutGuid extends LayoutType<UUID> {
Out<UUID> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadGuid(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadGuid(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -48,11 +47,11 @@ public final class LayoutGuid extends LayoutType<UUID> {
Out<UUID> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseGuid(edit));
value.setAndGet(b.get().ReadSparseGuid(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutInt16 extends LayoutType<Short> {
Out<Short> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadInt16(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadInt16(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutInt16 extends LayoutType<Short> {
Out<Short> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseInt16(edit));
value.setAndGet(b.get().ReadSparseInt16(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutInt32 extends LayoutType<Integer> {
Out<Integer> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadInt32(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadInt32(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutInt32 extends LayoutType<Integer> {
Out<Integer> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseInt32(edit));
value.setAndGet(b.get().ReadSparseInt32(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutInt64 extends LayoutType<Long> {
Out<Long> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadInt64(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadInt64(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutInt64 extends LayoutType<Long> {
Out<Long> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseInt64(edit));
value.setAndGet(b.get().ReadSparseInt64(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -33,11 +32,11 @@ public final class LayoutInt8 extends LayoutType<Byte> {
Out<Byte> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadInt8(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadInt8(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -46,11 +45,11 @@ public final class LayoutInt8 extends LayoutType<Byte> {
Out<Byte> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseInt8(edit));
value.setAndGet(b.get().ReadSparseInt8(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -34,11 +33,11 @@ public final class LayoutMongoDbObjectId extends LayoutType<MongoDbObjectId> {
Out<MongoDbObjectId> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadMongoDbObjectId(scope.get().start + col.getOffset()).clone());
value.setAndGet(b.get().ReadMongoDbObjectId(scope.get().start + col.getOffset()).clone());
return Result.Success;
}
@@ -47,11 +46,11 @@ public final class LayoutMongoDbObjectId extends LayoutType<MongoDbObjectId> {
Out<MongoDbObjectId> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseMongoDbObjectId(edit).clone());
value.setAndGet(b.get().ReadSparseMongoDbObjectId(edit).clone());
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.NullValue;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
@@ -38,7 +37,7 @@ public final class LayoutNull extends LayoutType<NullValue> {
public Result ReadFixed(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col,
Out<NullValue> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
value.set(NullValue.Default);
value.setAndGet(NullValue.Default);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
return Result.NotFound;
}
@@ -51,11 +50,11 @@ public final class LayoutNull extends LayoutType<NullValue> {
Out<NullValue> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseNull(edit).clone());
value.setAndGet(b.get().ReadSparseNull(edit).clone());
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -73,7 +72,7 @@ public final class LayoutNullable extends LayoutIndexedScope {
UpdateOptions options) {
Result result = LayoutType.PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -44,7 +43,7 @@ public final class LayoutObject extends LayoutPropertyScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = LayoutType.PrepareSparseWrite(b, edit, this.getTypeArg().clone(), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -77,11 +76,11 @@ public abstract class LayoutScope extends LayoutType {
Out<RowCursor> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().SparseIteratorReadScope(edit,
value.setAndGet(b.get().SparseIteratorReadScope(edit,
this.Immutable || edit.get().immutable || edit.get().scopeType.IsUniqueScope).clone());
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -66,7 +65,7 @@ public final class LayoutTagged extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -44,7 +44,7 @@ public final class LayoutTagged2 extends LayoutIndexedScope {
@Override
public TypeArgumentList ReadTypeArgumentList(Reference<RowBuffer> row, int offset,
Out<Integer> lenInBytes) {
lenInBytes.set(0);
lenInBytes.setAndGet(0);
TypeArgument[] retval = new TypeArgument[3];
retval[0] = new TypeArgument(UInt8, TypeArgumentList.Empty);
for (int i = 1; i < 3; i++) {
@@ -52,7 +52,7 @@ public final class LayoutTagged2 extends LayoutIndexedScope {
Out<Integer> tempOut_itemLenInBytes = new Out<Integer>();
retval[i] = ReadTypeArgument(row, offset + lenInBytes.get(), tempOut_itemLenInBytes);
itemLenInBytes = tempOut_itemLenInBytes.get();
lenInBytes.set(lenInBytes.get() + itemLenInBytes);
lenInBytes.setAndGet(lenInBytes.get() + itemLenInBytes);
}
return new TypeArgumentList(retval);
@@ -78,7 +78,7 @@ public final class LayoutTagged2 extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -47,7 +46,7 @@ public final class LayoutTuple extends LayoutIndexedScope {
Out<Integer> tempOut_itemLenInBytes = new Out<Integer>();
retval[i] = ReadTypeArgument(row, offset + lenInBytes.get(), tempOut_itemLenInBytes);
itemLenInBytes = tempOut_itemLenInBytes.get();
lenInBytes.set(lenInBytes.get() + itemLenInBytes);
lenInBytes.setAndGet(lenInBytes.get() + itemLenInBytes);
}
return new TypeArgumentList(retval);
@@ -67,7 +66,7 @@ public final class LayoutTuple extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -385,44 +384,44 @@ public abstract class LayoutType implements ILayoutType {
// Prepare the delete of the source.
Result result = LayoutType.PrepareSparseDelete(b, srcEdit, elementType.getType().LayoutCode);
if (result != Result.Success) {
dstEdit.set(null);
dstEdit.setAndGet(null);
return result;
}
if (!srcEdit.get().exists) {
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.NotFound;
}
if (destinationScope.get().immutable) {
b.get().DeleteSparse(srcEdit);
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.InsufficientPermissions;
}
if (!srcEdit.get().cellTypeArgs.equals(elementType.getTypeArgs().clone())) {
b.get().DeleteSparse(srcEdit);
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.TypeConstraint;
}
if (options == UpdateOptions.InsertAt) {
b.get().DeleteSparse(srcEdit);
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.TypeConstraint;
}
// Prepare the insertion at the destination.
dstEdit.set(b.get().PrepareSparseMove(destinationScope, srcEdit).clone());
dstEdit.setAndGet(b.get().PrepareSparseMove(destinationScope, srcEdit).clone());
if ((options == UpdateOptions.Update) && (!dstEdit.get().exists)) {
b.get().DeleteSparse(srcEdit);
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.NotFound;
}
if ((options == UpdateOptions.Insert) && dstEdit.get().exists) {
b.get().DeleteSparse(srcEdit);
dstEdit.set(null);
dstEdit.setAndGet(null);
return Result.Exists;
}
@@ -504,12 +503,12 @@ public abstract class LayoutType implements ILayoutType {
Out<Integer> tempOut_argsLenInBytes = new Out<Integer>();
TypeArgumentList itemTypeArgs = itemCode.ReadTypeArgumentList(row, offset + (com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutCode.SIZE / Byte.SIZE), tempOut_argsLenInBytes).clone();
argsLenInBytes = tempOut_argsLenInBytes.get();
lenInBytes.set((com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutCode.SIZE / Byte.SIZE) + argsLenInBytes);
lenInBytes.setAndGet((com.azure.data.cosmos.serialization.hybridrow.layouts.LayoutCode.SIZE / Byte.SIZE) + argsLenInBytes);
return new TypeArgument(itemCode, itemTypeArgs.clone());
}
public TypeArgumentList ReadTypeArgumentList(Reference<RowBuffer> row, int offset, Out<Integer> lenInBytes) {
lenInBytes.set(0);
lenInBytes.setAndGet(0);
return TypeArgumentList.Empty;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -104,7 +103,7 @@ public abstract class LayoutType<T> extends LayoutType {
public Result ReadVariable(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col
, Out<T> value) {
value.set(null);
value.setAndGet(null);
return Result.Failure;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -61,7 +60,7 @@ public final class LayoutTypedArray extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = LayoutType.PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -48,14 +47,14 @@ public final class LayoutTypedMap extends LayoutUniqueScope {
@Override
public TypeArgumentList ReadTypeArgumentList(Reference<RowBuffer> row, int offset,
Out<Integer> lenInBytes) {
lenInBytes.set(0);
lenInBytes.setAndGet(0);
TypeArgument[] retval = new TypeArgument[2];
for (int i = 0; i < 2; i++) {
int itemLenInBytes;
Out<Integer> tempOut_itemLenInBytes = new Out<Integer>();
retval[i] = ReadTypeArgument(row, offset + lenInBytes.get(), tempOut_itemLenInBytes);
itemLenInBytes = tempOut_itemLenInBytes.get();
lenInBytes.set(lenInBytes.get() + itemLenInBytes);
lenInBytes.setAndGet(lenInBytes.get() + itemLenInBytes);
}
return new TypeArgumentList(retval);
@@ -82,7 +81,7 @@ public final class LayoutTypedMap extends LayoutUniqueScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -68,7 +67,7 @@ public final class LayoutTypedSet extends LayoutUniqueScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -53,7 +53,7 @@ public final class LayoutTypedTuple extends LayoutIndexedScope {
Out<Integer> tempOut_itemLenInBytes = new Out<Integer>();
retval[i] = LayoutType.ReadTypeArgument(row, offset + lenInBytes.get(), tempOut_itemLenInBytes);
itemLenInBytes = tempOut_itemLenInBytes.get();
lenInBytes.set(lenInBytes.get() + itemLenInBytes);
lenInBytes.setAndGet(lenInBytes.get() + itemLenInBytes);
}
return new TypeArgumentList(retval);
@@ -79,7 +79,7 @@ public final class LayoutTypedTuple extends LayoutIndexedScope {
TypeArgumentList typeArgs, Out<RowCursor> value, UpdateOptions options) {
Result result = LayoutType.PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -32,7 +31,7 @@ public final class LayoutUDT extends LayoutPropertyScope {
public TypeArgumentList ReadTypeArgumentList(Reference<RowBuffer> row, int offset,
Out<Integer> lenInBytes) {
SchemaId schemaId = row.get().ReadSchemaId(offset).clone();
lenInBytes.set(SchemaId.Size);
lenInBytes.setAndGet(SchemaId.Size);
return new TypeArgumentList(schemaId.clone());
}
@@ -51,7 +50,7 @@ public final class LayoutUDT extends LayoutPropertyScope {
Layout udt = b.get().getResolver().Resolve(typeArgs.getSchemaId().clone());
Result result = PrepareSparseWrite(b, edit, new TypeArgument(this, typeArgs.clone()), options);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -38,11 +37,11 @@ public final class LayoutUInt16 extends LayoutType<Short> {
Out<Short> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadUInt16(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadUInt16(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -53,11 +52,11 @@ public final class LayoutUInt16 extends LayoutType<Short> {
Out<Short> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseUInt16(edit));
value.setAndGet(b.get().ReadSparseUInt16(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -38,11 +37,11 @@ public final class LayoutUInt32 extends LayoutType<Integer> {
Out<Integer> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadUInt32(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadUInt32(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -53,11 +52,11 @@ public final class LayoutUInt32 extends LayoutType<Integer> {
Out<Integer> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseUInt32(edit));
value.setAndGet(b.get().ReadSparseUInt32(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -38,11 +37,11 @@ public final class LayoutUInt64 extends LayoutType<Long> {
Out<Long> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadUInt64(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadUInt64(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -53,11 +52,11 @@ public final class LayoutUInt64 extends LayoutType<Long> {
Out<Long> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseUInt64(edit));
value.setAndGet(b.get().ReadSparseUInt64(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -38,11 +37,11 @@ public final class LayoutUInt8 extends LayoutType<Byte> {
Out<Byte> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
value.set(b.get().ReadUInt8(scope.get().start + col.getOffset()));
value.setAndGet(b.get().ReadUInt8(scope.get().start + col.getOffset()));
return Result.Success;
}
@@ -53,11 +52,11 @@ public final class LayoutUInt8 extends LayoutType<Byte> {
Out<Byte> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseUInt8(edit));
value.setAndGet(b.get().ReadSparseUInt8(edit));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -35,11 +34,11 @@ public final class LayoutUnixDateTime extends LayoutType<com.azure.data.cosmos.s
Out<UnixDateTime> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadUnixDateTime(scope.get().start + col.getOffset()).clone());
value.setAndGet(b.get().ReadUnixDateTime(scope.get().start + col.getOffset()).clone());
return Result.Success;
}
@@ -48,11 +47,11 @@ public final class LayoutUnixDateTime extends LayoutType<com.azure.data.cosmos.s
Out<UnixDateTime> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseUnixDateTime(edit).clone());
value.setAndGet(b.get().ReadSparseUnixDateTime(edit).clone());
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -35,7 +34,7 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
// TODO: C# TO JAVA CONVERTER: The following method call contained an unresolved 'out' keyword - these
// cannot be converted using the 'Out' helper class unless the method is within the code being modified:
Result r = this.ReadFixed(b, scope, col, out span);
value.set((r == Result.Success) ? span.toString() :)
value.setAndGet((r == Result.Success) ? span.toString() :)
default
return r;
}
@@ -45,11 +44,11 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
checkArgument(scope.get().scopeType instanceof LayoutUDT);
checkArgument(col.getSize() >= 0);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
value.set(b.get().ReadFixedString(scope.get().start + col.getOffset(), col.getSize()));
value.setAndGet(b.get().ReadFixedString(scope.get().start + col.getOffset(), col.getSize()));
return Result.Success;
}
@@ -60,7 +59,7 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
// TODO: C# TO JAVA CONVERTER: The following method call contained an unresolved 'out' keyword - these
// cannot be converted using the 'Out' helper class unless the method is within the code being modified:
Result r = this.ReadSparse(b, edit, out span);
value.set((r == Result.Success) ? span.toString() :)
value.setAndGet((r == Result.Success) ? span.toString() :)
default
return r;
}
@@ -68,11 +67,11 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
public Result ReadSparse(Reference<RowBuffer> b, Reference<RowCursor> edit, Out<Utf8Span> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(null);
value.setAndGet(null);
return result;
}
value.set(b.get().ReadSparseString(edit));
value.setAndGet(b.get().ReadSparseString(edit));
return Result.Success;
}
@@ -83,7 +82,7 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
// TODO: C# TO JAVA CONVERTER: The following method call contained an unresolved 'out' keyword - these
// cannot be converted using the 'Out' helper class unless the method is within the code being modified:
Result r = this.ReadVariable(b, scope, col, out span);
value.set((r == Result.Success) ? span.toString() :)
value.setAndGet((r == Result.Success) ? span.toString() :)
default
return r;
}
@@ -92,13 +91,13 @@ public final class LayoutUtf8 extends LayoutType<String> implements ILayoutUtf8S
, Out<Utf8Span> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(null);
value.setAndGet(null);
return Result.NotFound;
}
int varOffset = b.get().ComputeVariableValueOffset(scope.get().layout, scope.get().start,
col.getOffset());
value.set(b.get().ReadVariableString(varOffset));
value.setAndGet(b.get().ReadVariableString(varOffset));
return Result.Success;
}

View File

@@ -36,7 +36,7 @@ public final class LayoutVarInt extends LayoutType<Long> {
public Result ReadFixed(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col,
Out<Long> value) {
Contract.Fail("Not Implemented");
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
@@ -44,11 +44,11 @@ public final class LayoutVarInt extends LayoutType<Long> {
public Result ReadSparse(Reference<RowBuffer> b, Reference<RowCursor> edit, Out<Long> value) {
Result result = LayoutType.PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseVarInt(edit));
value.setAndGet(b.get().ReadSparseVarInt(edit));
return Result.Success;
}
@@ -56,13 +56,13 @@ public final class LayoutVarInt extends LayoutType<Long> {
public Result ReadVariable(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col, Out<Long> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
int varOffset = b.get().ComputeVariableValueOffset(scope.get().layout, scope.get().start,
col.getOffset());
value.set(b.get().ReadVariableInt(varOffset));
value.setAndGet(b.get().ReadVariableInt(varOffset));
return Result.Success;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
import com.azure.data.cosmos.serialization.hybridrow.RowCursor;
@@ -42,7 +41,7 @@ public final class LayoutVarUInt extends LayoutType<Long> {
public Result ReadFixed(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col,
Out<Long> value) {
Contract.Fail("Not Implemented");
value.set(0);
value.setAndGet(0);
return Result.Failure;
}
@@ -52,11 +51,11 @@ public final class LayoutVarUInt extends LayoutType<Long> {
public Result ReadSparse(Reference<RowBuffer> b, Reference<RowCursor> edit, Out<Long> value) {
Result result = PrepareSparseRead(b, edit, this.LayoutCode);
if (result != Result.Success) {
value.set(0);
value.setAndGet(0);
return result;
}
value.set(b.get().ReadSparseVarUInt(edit));
value.setAndGet(b.get().ReadSparseVarUInt(edit));
return Result.Success;
}
@@ -67,13 +66,13 @@ public final class LayoutVarUInt extends LayoutType<Long> {
public Result ReadVariable(Reference<RowBuffer> b, Reference<RowCursor> scope, LayoutColumn col, Out<Long> value) {
checkArgument(scope.get().scopeType instanceof LayoutUDT);
if (!b.get().ReadBit(scope.get().start, col.getNullBit().clone())) {
value.set(0);
value.setAndGet(0);
return Result.NotFound;
}
int varOffset = b.get().ComputeVariableValueOffset(scope.get().layout, scope.get().start,
col.getOffset());
value.set(b.get().ReadVariableUInt(varOffset));
value.setAndGet(b.get().ReadVariableUInt(varOffset));
return Result.Success;
}

View File

@@ -4,6 +4,8 @@
package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Utf8String;
//C# TO JAVA CONVERTER WARNING: Java does not allow user-defined value types. The behavior of this class may differ
// from the original:
//ORIGINAL LINE: public readonly struct StringToken

View File

@@ -5,58 +5,38 @@
package com.azure.data.cosmos.serialization.hybridrow.layouts;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Utf8String;
import com.azure.data.cosmos.core.UtfAnyString;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
public final class StringTokenizer {
/**
* The number of unique tokens described by the encoding.
*/
private int Count;
private HashMap<String, StringToken> stringTokens;
private ArrayList<Utf8String> strings;
private HashMap<Utf8String, StringToken> tokens;
private final HashMap<String, StringToken> stringTokens;
private final ArrayList<Utf8String> strings;
private final HashMap<Utf8String, StringToken> tokens;
private int count;
/**
* Initializes a new instance of the {@link StringTokenizer} class.
*/
public StringTokenizer() {
this.tokens = new HashMap<Utf8String, StringToken>(Map.ofEntries(Map.entry(Utf8String.Empty,
new StringToken(0, Utf8String.Empty))));
this.stringTokens = new HashMap<String, StringToken>(Map.ofEntries(Map.entry("", new StringToken(0,
Utf8String.Empty))));
this.strings = new ArrayList<Utf8String>(Arrays.asList(Utf8String.Empty));
this.setCount(1);
}
public int getCount() {
return Count;
}
this.tokens = new HashMap<Utf8String, StringToken>(
Map.ofEntries(Map.entry(Utf8String.EMPTY, new StringToken(0, Utf8String.EMPTY))));
private void setCount(int value) {
Count = value;
}
this.stringTokens = new HashMap<String, StringToken>(
Map.ofEntries(Map.entry("", new StringToken(0, Utf8String.EMPTY))));
/**
* Assign a token to the string.
* If the string already has a token, that token is returned instead.
*
* @param path The string to assign a new token.
* @return The token assigned to the string.
*/
public StringToken Add(Utf8String path) {
checkArgument(path != null);
StringToken token;
if (this.tokens.containsKey(path) && (token = this.tokens.get(path)) == token) {
return token;
}
token = this.AllocateToken(path).clone();
return token;
this.strings = new ArrayList<Utf8String>(Collections.singletonList(Utf8String.EMPTY));
this.count = 1;
}
/**
@@ -66,17 +46,14 @@ public final class StringTokenizer {
* @param path If successful, the token's assigned string.
* @return True if successful, false otherwise.
*/
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: public bool TryFindString(ulong token, out Utf8String path)
public boolean TryFindString(long token, Out<Utf8String> path) {
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: if (token >= (ulong)this.strings.Count)
public boolean tryFindString(long token, Out<Utf8String> path) {
if (token >= (long)this.strings.size()) {
path.set(null);
path.setAndGet(null);
return false;
}
path.set(this.strings.get((int)token));
path.setAndGet(this.strings.get((int) token));
return true;
}
@@ -87,17 +64,45 @@ public final class StringTokenizer {
* @param token If successful, the string's assigned token.
* @return True if successful, false otherwise.
*/
public boolean TryFindToken(UtfAnyString path, Out<StringToken> token) {
if (path.IsNull) {
token.set(null);
public boolean tryFindToken(UtfAnyString path, Out<StringToken> token) {
if (path.isNull()) {
token.setAndGet(null);
return false;
}
if (path.IsUtf8) {
return (this.tokens.containsKey(path.ToUtf8String()) && (token.set(this.tokens.get(path.ToUtf8String()))) == token.get());
if (path.isUtf8()) {
return (this.tokens.containsKey(path.toUtf8()) && (token.setAndGet(this.tokens.get(path.toUtf8()))) == token.get());
}
return (this.stringTokens.containsKey(path.toString()) && (token.set(this.stringTokens.get(path.toString()))) == token.get());
return (this.stringTokens.containsKey(path.toUtf16()) && (token.setAndGet(this.stringTokens.get(path.toUtf16()))) == token.get());
}
/**
* Assign a token to the string.
* If the string already has a token, that token is returned instead.
*
* @param path The string to assign a new token.
* @return The token assigned to the string.
*/
public StringToken add(Utf8String path) {
checkArgument(path != null);
StringToken token;
if (this.tokens.containsKey(path) && (token = this.tokens.get(path)) == token) {
return token;
}
token = this.allocateToken(path).clone();
return token;
}
/**
* The number of unique tokens described by the encoding.
*/
public int count() {
return this.count;
}
/**
@@ -106,17 +111,15 @@ public final class StringTokenizer {
* @param path The string that needs a new token.
* @return The new allocated token.
*/
private StringToken AllocateToken(Utf8String path) {
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: ulong id = (ulong)this.Count++;
long id = this.getCount();
this.setCount(this.getCount() + 1);
StringToken token = new StringToken(id, path);
private StringToken allocateToken(Utf8String path) {
final long id = this.count++;
final StringToken token = new StringToken(id, path);
this.tokens.put(path, token.clone());
this.stringTokens.put(path.toString(), token.clone());
this.strings.add(path);
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Contract.Assert((ulong)this.strings.Count - 1 == id);
checkState((long)this.strings.size() - 1 == id);
return token.clone();
}

View File

@@ -63,11 +63,11 @@ public final class RecordIOFormatter {
// layout, T obj, RowWriter.WriterFunc<T> writer, out RowBuffer row)
private static <T> Result FormatObject(ISpanResizer<Byte> resizer, int initialCapacity, Layout layout, T obj,
RowWriter.WriterFunc<T> writer, Out<RowBuffer> row) {
row.set(new RowBuffer(initialCapacity, resizer));
row.setAndGet(new RowBuffer(initialCapacity, resizer));
row.get().InitLayout(HybridRowVersion.V1, layout, SystemSchema.LayoutResolver);
Result r = RowWriter.WriteBuffer(row.clone(), obj, writer);
if (r != Result.Success) {
row.set(null);
row.setAndGet(null);
return r;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.recordio;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowHeader;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -65,8 +64,8 @@ public final class RecordIOParser {
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
//ORIGINAL LINE: Memory<byte> b = buffer;
Memory<Byte> b = buffer;
type.set(ProductionType.None);
record.set(null);
type.setAndGet(ProductionType.None);
record.setAndGet(null);
switch (this.state) {
case Start:
this.state = State.NeedSegmentLength;
@@ -74,8 +73,8 @@ public final class RecordIOParser {
case NeedSegmentLength: {
int minimalSegmentRowSize = HybridRowHeader.Size + RecordIOFormatter.SegmentLayout.getSize();
if (b.Length < minimalSegmentRowSize) {
need.set(minimalSegmentRowSize);
consumed.set(buffer.Length - b.Length);
need.setAndGet(minimalSegmentRowSize);
consumed.setAndGet(buffer.Length - b.Length);
return Result.InsufficientBuffer;
}
@@ -105,8 +104,8 @@ public final class RecordIOParser {
case NeedSegment: {
if (b.Length < this.segment.Length) {
need.set(this.segment.Length);
consumed.set(buffer.Length - b.Length);
need.setAndGet(this.segment.Length);
consumed.setAndGet(buffer.Length - b.Length);
return Result.InsufficientBuffer;
}
@@ -129,19 +128,19 @@ public final class RecordIOParser {
break;
}
record.set(b.Slice(0, span.Length));
record.setAndGet(b.Slice(0, span.Length));
b = b.Slice(span.Length);
need.set(0);
need.setAndGet(0);
this.state = State.NeedHeader;
consumed.set(buffer.Length - b.Length);
type.set(ProductionType.Segment);
consumed.setAndGet(buffer.Length - b.Length);
type.setAndGet(ProductionType.Segment);
return Result.Success;
}
case NeedHeader: {
if (b.Length < HybridRowHeader.Size) {
need.set(HybridRowHeader.Size);
consumed.set(buffer.Length - b.Length);
need.setAndGet(HybridRowHeader.Size);
consumed.setAndGet(buffer.Length - b.Length);
return Result.InsufficientBuffer;
}
@@ -174,8 +173,8 @@ public final class RecordIOParser {
case NeedRecord: {
int minimalRecordRowSize = HybridRowHeader.Size + RecordIOFormatter.RecordLayout.getSize();
if (b.Length < minimalRecordRowSize) {
need.set(minimalRecordRowSize);
consumed.set(buffer.Length - b.Length);
need.setAndGet(minimalRecordRowSize);
consumed.setAndGet(buffer.Length - b.Length);
return Result.InsufficientBuffer;
}
@@ -204,12 +203,12 @@ public final class RecordIOParser {
case NeedRow: {
if (b.Length < this.record.Length) {
need.set(this.record.Length);
consumed.set(buffer.Length - b.Length);
need.setAndGet(this.record.Length);
consumed.setAndGet(buffer.Length - b.Length);
return Result.InsufficientBuffer;
}
record.set(b.Slice(0, this.record.Length));
record.setAndGet(b.Slice(0, this.record.Length));
// Validate that the record has not been corrupted.
//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no direct equivalent in Java:
@@ -221,17 +220,17 @@ public final class RecordIOParser {
}
b = b.Slice(this.record.Length);
need.set(0);
need.setAndGet(0);
this.state = State.NeedHeader;
consumed.set(buffer.Length - b.Length);
type.set(ProductionType.Record);
consumed.setAndGet(buffer.Length - b.Length);
type.setAndGet(ProductionType.Record);
return Result.Success;
}
}
this.state = State.Error;
need.set(0);
consumed.set(buffer.Length - b.Length);
need.setAndGet(0);
consumed.setAndGet(buffer.Length - b.Length);
return r;
}

View File

@@ -317,11 +317,11 @@ public final class RecordIOStream {
Result r = RecordIOFormatter.FormatRecord(body, tempOut_row, resizer);
row = tempOut_row.get();
if (r != Result.Success) {
block.set(null);
block.setAndGet(null);
return r;
}
block.set(resizer.getMemory().Slice(0, row.Length));
block.setAndGet(resizer.getMemory().Slice(0, row.Length));
return Result.Success;
}
@@ -344,11 +344,11 @@ public final class RecordIOStream {
Result r = RecordIOFormatter.FormatSegment(segment.clone(), tempOut_row, resizer);
row = tempOut_row.get();
if (r != Result.Success) {
block.set(null);
block.setAndGet(null);
return r;
}
block.set(resizer.getMemory().Slice(0, row.Length));
block.setAndGet(resizer.getMemory().Slice(0, row.Length));
return Result.Success;
}

View File

@@ -6,12 +6,11 @@ package com.azure.data.cosmos.serialization.hybridrow.recordio;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
public final class RecordSerializer {
public static Result Read(Reference<RowReader> reader, Out<Record> obj) {
obj.set(null);
obj.setAndGet(null);
while (reader.get().Read()) {
Result r;

View File

@@ -28,7 +28,7 @@ public final class SegmentSerializer {
}
public static Result Read(Reference<RowReader> reader, Out<Segment> obj) {
obj.set(null);
obj.setAndGet(null);
while (reader.get().Read()) {
Result r;

View File

@@ -15,7 +15,7 @@ import com.azure.data.cosmos.core.Out;
public final class TryParseHelper {
public static boolean tryParseBoolean(String s, Out<Boolean> result) {
try {
result.set(Boolean.parseBoolean(s));
result.setAndGet(Boolean.parseBoolean(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -24,7 +24,7 @@ public final class TryParseHelper {
public static boolean tryParseByte(String s, Out<Byte> result) {
try {
result.set(Byte.parseByte(s));
result.setAndGet(Byte.parseByte(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -33,7 +33,7 @@ public final class TryParseHelper {
public static boolean tryParseDouble(String s, Out<Double> result) {
try {
result.set(Double.parseDouble(s));
result.setAndGet(Double.parseDouble(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -42,7 +42,7 @@ public final class TryParseHelper {
public static boolean tryParseFloat(String s, Out<Float> result) {
try {
result.set(Float.parseFloat(s));
result.setAndGet(Float.parseFloat(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -51,7 +51,7 @@ public final class TryParseHelper {
public static boolean tryParseInt(String s, Out<Integer> result) {
try {
result.set(Integer.parseInt(s));
result.setAndGet(Integer.parseInt(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -60,7 +60,7 @@ public final class TryParseHelper {
public static boolean tryParseLong(String s, Out<Long> result) {
try {
result.set(Long.parseLong(s));
result.setAndGet(Long.parseLong(s));
return true;
} catch (NumberFormatException e) {
return false;
@@ -69,7 +69,7 @@ public final class TryParseHelper {
public static boolean tryParseShort(String s, Out<Short> result) {
try {
result.set(Short.parseShort(s));
result.setAndGet(Short.parseShort(s));
return true;
} catch (NumberFormatException e) {
return false;

View File

@@ -60,7 +60,7 @@ public final class BsonRowGenerator implements Closeable {
public void WriteBuffer(HashMap<Utf8String, Object> dict) {
this.writer.writeStartDocument();
for (LayoutColumn c : this.layout.getColumns()) {
for (LayoutColumn c : this.layout.columns()) {
this.LayoutCodeSwitch(c.getPath(), c.getTypeArg().clone(), dict.get(c.getPath()));
}
@@ -141,7 +141,7 @@ public final class BsonRowGenerator implements Closeable {
HashMap<Utf8String, Object> dict = (HashMap<Utf8String, Object>)value;
Layout udt = this.resolver.Resolve(typeArg.getTypeArgs().getSchemaId().clone());
for (LayoutColumn c : udt.getColumns()) {
for (LayoutColumn c : udt.columns()) {
this.LayoutCodeSwitch(c.getPath(), c.getTypeArg().clone(), dict.get(c.getPath()));
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.perf;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.ISpanResizer;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -53,7 +52,7 @@ public final class CodeGenRowGenerator {
this.row = new RowBuffer(capacity, resizer);
this.row.InitLayout(HybridRowVersion.V1, layout, resolver);
switch (layout.getName()) {
switch (layout.name()) {
case "Hotels":
this.dispatcher = new HotelsHybridRowSerializer(layout, resolver);
break;
@@ -67,7 +66,7 @@ public final class CodeGenRowGenerator {
break;
default:
throw new IllegalStateException(lenientFormat("Unknown schema will be ignored: %s", layout.getName()));
throw new IllegalStateException(lenientFormat("Unknown schema will be ignored: %s", layout.name()));
this.dispatcher = null;
break;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.unit;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
@@ -100,11 +99,11 @@ public final class NullableUnitTests {
nullableScope.clone());
value = tempOut_value.get();
if ((r != Result.Success) && (r != Result.NotFound)) {
item.set(null);
item.setAndGet(null);
return r;
}
item.set((r == Result.NotFound) ? null : value);
item.setAndGet((r == Result.NotFound) ? null : value);
return Result.Success;
}
@@ -122,7 +121,7 @@ public final class NullableUnitTests {
Out<RowCursor> nullableScope) {
Result r = itemType.getType().<LayoutNullable>TypeAs().ReadScope(row, scope, nullableScope.clone());
if (r != Result.Success) {
item.set(null);
item.setAndGet(null);
return r;
}
@@ -133,7 +132,7 @@ public final class NullableUnitTests {
}
ResultAssert.NotFound(LayoutNullable.HasValue(row, nullableScope.clone()));
item.set(null);
item.setAndGet(null);
return Result.NotFound;
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.unit;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.MemorySpanResizer;
import com.azure.data.cosmos.serialization.hybridrow.Result;
@@ -171,7 +170,7 @@ public class RecordIOUnitTests {
Result r = DiagnosticConverter.ReaderToString(tempReference_reader, out str);
reader = tempReference_reader.get();
if (r != Result.Success) {
obj.set(null);
obj.setAndGet(null);
return r;
}
@@ -206,7 +205,7 @@ public class RecordIOUnitTests {
Result r = DiagnosticConverter.ReaderToString(tempReference_reader, out str);
reader = tempReference_reader.get();
if (r != Result.Success) {
obj.set(null);
obj.setAndGet(null);
return r;
}
@@ -234,11 +233,11 @@ public class RecordIOUnitTests {
Result r = RowWriter.WriteBuffer(tempReference_row, obj, AddressSerializer.Write);
row = tempReference_row.get();
if (r != Result.Success) {
buffer.set(null);
buffer.setAndGet(null);
return r;
}
buffer.set(resizer.getMemory().Slice(0, row.getLength()));
buffer.setAndGet(resizer.getMemory().Slice(0, row.getLength()));
return Result.Success;
}
}

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.unit;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
@@ -139,7 +138,7 @@ public final class SerializerUnitTest {
public static Result Read(Reference<RowReader> reader, Out<BatchOperation> operation) {
BatchOperation retval = new BatchOperation();
operation.set(null);
operation.setAndGet(null);
while (reader.get().Read()) {
Result r;
switch (reader.get().getPath()) {
@@ -198,7 +197,7 @@ public final class SerializerUnitTest {
}
}
operation.set(retval);
operation.setAndGet(retval);
return Result.Success;
}
@@ -245,7 +244,7 @@ public final class SerializerUnitTest {
public static Result Read(Reference<RowReader> reader,
Out<BatchRequestHeaders> header) {
BatchRequestHeaders retval = new BatchRequestHeaders();
header.set(null);
header.setAndGet(null);
while (reader.get().Read()) {
switch (reader.get().getPath()) {
case "sampleRequestHeader":
@@ -260,7 +259,7 @@ public final class SerializerUnitTest {
}
}
header.set(retval);
header.setAndGet(retval);
return Result.Success;
}
@@ -283,11 +282,11 @@ public final class SerializerUnitTest {
Result r = RowReaderExtensions.ReadList(reader.get().clone(), BatchOperationSerializer.Read, tempOut_operations);
operations = tempOut_operations.get();
if (r != Result.Success) {
request.set(null);
request.setAndGet(null);
return r;
}
request.set(new BatchRequest());
request.setAndGet(new BatchRequest());
request.get().Operations = operations;
return Result.Success;

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.unit;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.HybridRowVersion;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.RowBuffer;
@@ -968,7 +967,7 @@ public final class TypedMapUnitTests {
private static <TKey, TValue> Result ReadKeyValue(Reference<RowBuffer> row,
Reference<RowCursor> scope, TypeArgumentList typeArgs,
Out<KeyValuePair<TKey, TValue>> pair) {
pair.set(null);
pair.setAndGet(null);
LayoutIndexedScope tupleLayout = LayoutType.TypedTuple;
RowCursor tupleScope;
Out<RowCursor> tempOut_tupleScope =
@@ -1003,7 +1002,7 @@ public final class TypedMapUnitTests {
return r;
}
pair.set(new KeyValuePair<TKey, TValue>(key, value));
pair.setAndGet(new KeyValuePair<TKey, TValue>(key, value));
return Result.Success;
}

View File

@@ -6,14 +6,13 @@ package com.azure.data.cosmos.serialization.hybridrow.unit.customerschema;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import azure.data.cosmos.serialization.hybridrow.unit.*;
import com.azure.data.cosmos.serialization.hybridrow.io.RowReader;
public final class AddressSerializer {
public static Result Read(Reference<RowReader> reader, Out<Address> obj) {
obj.set(new Address());
obj.setAndGet(new Address());
while (reader.get().Read()) {
Result r;
switch (reader.get().getPath()) {

View File

@@ -6,7 +6,6 @@ package com.azure.data.cosmos.serialization.hybridrow.unit.customerschema;
import com.azure.data.cosmos.core.Out;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.core.Reference;
import com.azure.data.cosmos.serialization.hybridrow.Result;
import com.azure.data.cosmos.serialization.hybridrow.SchemaId;
import com.azure.data.cosmos.serialization.hybridrow.io.RowReader;
@@ -24,7 +23,7 @@ public final class PostalCodeSerializer {
public static TypeArgument TypeArg = new TypeArgument(LayoutType.UDT, new TypeArgumentList(new SchemaId(1)));
public static Result Read(Reference<RowReader> reader, Out<PostalCode> obj) {
obj.set(new PostalCode());
obj.setAndGet(new PostalCode());
while (reader.get().Read()) {
Result r;
switch (reader.get().getPath()) {