use of com.palantir.atlasdb.table.description.NameMetadataDescription in project atlasdb by palantir.
the class Renderers method getRowComponents.
public static List<NameComponentDescription> getRowComponents(TableMetadata tableMetadata) {
NameMetadataDescription rowMetadata = tableMetadata.getRowMetadata();
List<NameComponentDescription> rowParts = rowMetadata.getRowParts();
return rowMetadata.numberOfComponentsHashed() == 0 ? rowParts : rowParts.subList(1, rowParts.size());
}
use of com.palantir.atlasdb.table.description.NameMetadataDescription in project atlasdb by palantir.
the class AbstractKeyValueServiceTest method createTableWithNamedColumns.
private TableReference createTableWithNamedColumns(int numColumns) {
TableReference tableRef = TableReference.createFromFullyQualifiedName("ns.pt_kvs_test_named_cols_" + numColumns);
List<NamedColumnDescription> columns = new ArrayList<>();
for (int i = 1; i <= numColumns; ++i) {
columns.add(new NamedColumnDescription("c" + i, "column" + i, ColumnValueDescription.forType(ValueType.BLOB)));
}
keyValueService.createTable(tableRef, new TableMetadata(new NameMetadataDescription(), new ColumnMetadataDescription(columns), ConflictHandler.RETRY_ON_WRITE_WRITE, TableMetadataPersistence.LogSafety.SAFE).persistToBytes());
keyValueService.truncateTable(tableRef);
return tableRef;
}
use of com.palantir.atlasdb.table.description.NameMetadataDescription in project atlasdb by palantir.
the class TableMetadataDeserializer method deserialize.
@Override
public TableMetadata deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonNode node = jp.readValueAsTree();
NameMetadataDescription row = deserializeRowish(node);
ColumnMetadataDescription col;
if (node.get("is_dynamic").asBoolean()) {
col = deserializeDynamicCol(node);
} else {
col = deserializeNamedCols(node);
}
return new TableMetadata(row, col, ConflictHandler.IGNORE_ALL);
}
use of com.palantir.atlasdb.table.description.NameMetadataDescription in project atlasdb by palantir.
the class TableMetadataSerializer method serialize.
@Override
public void serialize(TableMetadata value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStartObject();
NameMetadataDescription rowMetadata = value.getRowMetadata();
ColumnMetadataDescription columnMetadata = value.getColumns();
boolean isDynamic = columnMetadata.hasDynamicColumns();
jgen.writeBooleanField("is_dynamic", isDynamic);
jgen.writeArrayFieldStart("row");
serialize(jgen, rowMetadata);
jgen.writeEndArray();
if (isDynamic) {
DynamicColumnDescription dynamicColumn = columnMetadata.getDynamicColumn();
jgen.writeArrayFieldStart("column");
serialize(jgen, dynamicColumn.getColumnNameDesc());
jgen.writeEndArray();
jgen.writeObjectFieldStart("value");
serialize(jgen, dynamicColumn.getValue());
jgen.writeEndObject();
} else {
jgen.writeArrayFieldStart("columns");
for (NamedColumnDescription namedColumn : columnMetadata.getNamedColumns()) {
jgen.writeStartObject();
jgen.writeObjectField("name", namedColumn.getShortName());
jgen.writeObjectField("long_name", namedColumn.getLongName());
jgen.writeObjectFieldStart("value");
serialize(jgen, namedColumn.getValue());
jgen.writeEndObject();
jgen.writeEndObject();
}
jgen.writeEndArray();
}
jgen.writeEndObject();
}
use of com.palantir.atlasdb.table.description.NameMetadataDescription in project atlasdb by palantir.
the class AtlasSerializers method serializeCol.
public static void serializeCol(JsonGenerator jgen, ColumnMetadataDescription colDescription, byte[] col) throws IOException {
if (colDescription.hasDynamicColumns()) {
DynamicColumnDescription dynMetadata = colDescription.getDynamicColumn();
NameMetadataDescription description = dynMetadata.getColumnNameDesc();
jgen.writeRawValue(description.renderToJson(col));
} else {
Set<NamedColumnDescription> namedColumns = colDescription.getNamedColumns();
for (NamedColumnDescription description : namedColumns) {
if (UnsignedBytes.lexicographicalComparator().compare(col, PtBytes.toCachedBytes(description.getShortName())) == 0) {
jgen.writeString(description.getLongName());
return;
}
}
throw new IllegalArgumentException("Column " + BaseEncoding.base16().lowerCase().encode(col) + " is not a valid column.");
}
}
Aggregations