private Field<?> createField(String name, FieldType.Type type, Object value) { switch (type) { case BYTES: return Fields.bytesField(name, (byte[]) value); case LONG: return Fields.longField(name, (Long) value); case INTEGER: return Fields.intField(name, (Integer) value); case DOUBLE: return Fields.doubleField(name, (Double) value); case FLOAT: return Fields.floatField(name, (Float) value); case STRING: return Fields.stringField(name, (String) value); default: throw new IllegalStateException("Unknown field type " + type); } }
private List<Collection<Field<?>>> writeSimpleStructuredRows(int max, String suffix) throws Exception { List<Collection<Field<?>>> expected = new ArrayList<>(max); for (int i = 0; i < max; i++) { List<Field<?>> fields = Arrays.asList(Fields.intField(KEY, i), Fields.longField(KEY2, (long) i), Fields.stringField(STRING_COL, VAL + i + suffix), Fields.doubleField(DOUBLE_COL, (double) i), Fields.floatField(FLOAT_COL, (float) i), Fields.bytesField(BYTES_COL, Bytes.toBytes("bytes-" + i))); expected.add(fields); getTransactionRunner().run(context -> { StructuredTable table = context.getTable(SIMPLE_TABLE); table.upsert(fields); }); } return expected; }
private List<Field<?>> convertRowToFields(StructuredRow row, List<String> columns) { List<Field<?>> fields = new ArrayList<>(); for (String name : columns) { FieldType.Type type = SIMPLE_SCHEMA.getType(name); if (type == null) { throw new InvalidFieldException(SIMPLE_TABLE, name); } switch (type) { case BYTES: fields.add(Fields.bytesField(name, row.getBytes(name))); break; case STRING: fields.add(Fields.stringField(name, row.getString(name))); break; case FLOAT: fields.add(Fields.floatField(name, row.getFloat(name))); break; case DOUBLE: fields.add(Fields.doubleField(name, row.getDouble(name))); break; case INTEGER: fields.add(Fields.intField(name, row.getInteger(name))); break; case LONG: fields.add(Fields.longField(name, row.getLong(name))); break; } } return fields; }
STRING_COL, Fields.stringField(STRING_COL, VAL + 100), DOUBLE_COL, Fields.doubleField(DOUBLE_COL, 100.0), FLOAT_COL, Fields.floatField(FLOAT_COL, 10.0f), BYTES_COL, Fields.bytesField(BYTES_COL, Bytes.toBytes("new-bytes")), LONG_COL, Fields.longField(LONG_COL, 500L)
validator.validatePrimaryKeys(Arrays.asList(Fields.floatField(KEY, 10.0f), Fields.longField(KEY2, 100L), Fields.stringField(KEY3, "s")), false); Assert.fail("Expected InvalidFieldException");
private List<Collection<Field<?>>> scanSimpleStructuredRows(Range range, int max) throws Exception { List<Collection<Field<?>>> actual = new ArrayList<>(max); getTransactionRunner().run(context -> { StructuredTable table = context.getTable(SIMPLE_TABLE); try (CloseableIterator<StructuredRow> iterator = table.scan(range, max)) { while (iterator.hasNext()) { StructuredRow row = iterator.next(); actual.add(Arrays.asList(Fields.intField(KEY, row.getInteger(KEY)), Fields.longField(KEY2, row.getLong(KEY2)), Fields.stringField(STRING_COL, row.getString(STRING_COL)), Fields.doubleField(DOUBLE_COL, row.getDouble(DOUBLE_COL)), Fields.floatField(FLOAT_COL, row.getFloat(FLOAT_COL)), Fields.bytesField(BYTES_COL, row.getBytes(BYTES_COL)))); } } }); return actual; } }