com.yandex.ydb.table.result.impl.ProtoTupleValueReader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ydb-sdk-jdbc-uberjar Show documentation
Show all versions of ydb-sdk-jdbc-uberjar Show documentation
JDBC client implementation over Table client, single jar
package com.yandex.ydb.table.result.impl;
import com.yandex.ydb.ValueProtos;
import com.yandex.ydb.table.result.ValueReader;
/**
* @author Sergey Polovko
*/
final class ProtoTupleValueReader extends AbstractValueReader {
private final ValueProtos.Type type;
private final AbstractValueReader[] elementReaders;
private ValueProtos.Value value;
ProtoTupleValueReader(ValueProtos.Type type, AbstractValueReader[] elementReaders) {
this.type = type;
this.elementReaders = elementReaders;
}
@Override
protected ValueProtos.Type getProtoType() {
return type;
}
@Override
protected ValueProtos.Value getProtoValue() {
return value;
}
@Override
protected void setProtoValue(ValueProtos.Value value) {
this.value = value;
}
@Override
public int getTupleElementsCount() {
return elementReaders.length;
}
@Override
public ValueReader getTupleElement(int index) {
AbstractValueReader elementReader = elementReaders[index];
elementReader.setProtoValue(value.getItems(index));
return elementReader;
}
@Override
public void toString(StringBuilder sb) {
sb.append("Tuple[");
for (int i = 0; i < getTupleElementsCount(); i++) {
getTupleElement(i).toString(sb);
sb.append(", ");
}
if (getTupleElementsCount() > 0) {
sb.setLength(sb.length() - 2);
}
sb.append(']');
}
}