public static Frame fromProto(Common.Frame proto) { List<Object> parsedRows = new ArrayList<>(proto.getRowsCount()); for (Common.Row protoRow : proto.getRowsList()) { ArrayList<Object> row = new ArrayList<>(protoRow.getValueCount()); for (Common.ColumnValue protoColumn : protoRow.getValueList()) { final Object value; if (!isNewStyleColumn(protoColumn)) { // Backward compatibility value = parseOldStyleColumn(protoColumn); } else { // Current style parsing (separate scalar and array values) value = parseColumn(protoColumn); } row.add(value); } parsedRows.add(row); } return new Frame(proto.getOffset(), proto.getDone(), parsedRows); }
public static Frame fromProto(Common.Frame proto) { List<Object> parsedRows = new ArrayList<>(proto.getRowsCount()); for (Common.Row protoRow : proto.getRowsList()) { ArrayList<Object> row = new ArrayList<>(protoRow.getValueCount()); for (Common.ColumnValue protoColumn : protoRow.getValueList()) { final Object value; if (!isNewStyleColumn(protoColumn)) { // Backward compatibility value = parseOldStyleColumn(protoColumn); } else { // Current style parsing (separate scalar and array values) value = parseColumn(protoColumn); } row.add(value); } parsedRows.add(row); } return new Frame(proto.getOffset(), proto.getDone(), parsedRows); }
public static Frame fromProto(Common.Frame proto) { List<Object> parsedRows = new ArrayList<>(proto.getRowsCount()); for (Common.Row protoRow : proto.getRowsList()) { ArrayList<Object> row = new ArrayList<>(protoRow.getValueCount()); for (Common.ColumnValue protoColumn : protoRow.getValueList()) { final Object value; if (!isNewStyleColumn(protoColumn)) { // Backward compatibility value = parseOldStyleColumn(protoColumn); } else { // Current style parsing (separate scalar and array values) value = parseColumn(protoColumn); } row.add(value); } parsedRows.add(row); } return new Frame(proto.getOffset(), proto.getDone(), parsedRows); }
public Common.Frame toProto() { Common.Frame.Builder builder = Common.Frame.newBuilder(); builder.setDone(done).setOffset(offset); for (Object row : this.rows) { if (null == row) { // Does this need to be persisted for some reason? continue; } final Common.Row.Builder rowBuilder = Common.Row.newBuilder(); if (row instanceof Object[]) { // If only Object[] was also Iterable. for (Object element : (Object[]) row) { parseColumn(rowBuilder, element); } } else if (row instanceof Iterable) { for (Object element : (Iterable<?>) row) { parseColumn(rowBuilder, element); } } else { // Can a "row" be a primitive? A struct? Only an Array? throw new RuntimeException("Only arrays are supported"); } // Collect all rows builder.addRows(rowBuilder.build()); } return builder.build(); }
public Common.Frame toProto() { Common.Frame.Builder builder = Common.Frame.newBuilder(); builder.setDone(done).setOffset(offset); for (Object row : this.rows) { if (null == row) { // Does this need to be persisted for some reason? continue; } final Common.Row.Builder rowBuilder = Common.Row.newBuilder(); if (row instanceof Object[]) { // If only Object[] was also Iterable. for (Object element : (Object[]) row) { parseColumn(rowBuilder, element); } } else if (row instanceof Iterable) { for (Object element : (Iterable<?>) row) { parseColumn(rowBuilder, element); } } else { // Can a "row" be a primitive? A struct? Only an Array? throw new RuntimeException("Only arrays are supported"); } // Collect all rows builder.addRows(rowBuilder.build()); } return builder.build(); }
@Test public void testColumnValueParsing() { // 1 final ColumnValue scalarValue = ColumnValue.newBuilder().setScalarValue(NUMBER_VALUE).build(); // [1, 1] final ColumnValue arrayValue = ColumnValue.newBuilder().addArrayValue(NUMBER_VALUE) .addArrayValue(NUMBER_VALUE).setHasArrayValue(true).build(); assertTrue(Frame.isNewStyleColumn(scalarValue)); assertTrue(Frame.isNewStyleColumn(arrayValue)); Object scalar = Frame.parseColumn(scalarValue); assertEquals(1L, scalar); Object array = Frame.parseColumn(arrayValue); assertEquals(Arrays.asList(1L, 1L), array); } }
@Test public void testColumnValueParsing() { // 1 final ColumnValue scalarValue = ColumnValue.newBuilder().setScalarValue(NUMBER_VALUE).build(); // [1, 1] final ColumnValue arrayValue = ColumnValue.newBuilder().addArrayValue(NUMBER_VALUE) .addArrayValue(NUMBER_VALUE).setHasArrayValue(true).build(); assertTrue(Frame.isNewStyleColumn(scalarValue)); assertTrue(Frame.isNewStyleColumn(arrayValue)); Object scalar = Frame.parseColumn(scalarValue); assertEquals(1L, scalar); Object array = Frame.parseColumn(arrayValue); assertEquals(Arrays.asList(1L, 1L), array); }
@Test public void testColumnValueParsing() { // 1 final ColumnValue scalarValue = ColumnValue.newBuilder().setScalarValue(NUMBER_VALUE).build(); // [1, 1] final ColumnValue arrayValue = ColumnValue.newBuilder().addArrayValue(NUMBER_VALUE) .addArrayValue(NUMBER_VALUE).setHasArrayValue(true).build(); assertTrue(Frame.isNewStyleColumn(scalarValue)); assertTrue(Frame.isNewStyleColumn(arrayValue)); Object scalar = Frame.parseColumn(scalarValue); assertEquals(1L, scalar); Object array = Frame.parseColumn(arrayValue); assertEquals(Arrays.asList(1L, 1L), array); }