public QuantileStateCoder(ComparatorT compareFn, Coder<T> elementCoder) { this.compareFn = compareFn; this.elementCoder = elementCoder; this.elementListCoder = ListCoder.of(elementCoder); }
@Override public IterableCombinerFn.CollectionAccumulator<T> decode(InputStream inStream) throws IOException { List<T> decodedList = listCoder.decode(inStream); return new IterableCombinerFn.CollectionAccumulator<>(decodedList); } }
@Override public void encode(IterableCombinerFn.CollectionAccumulator<T> value, OutputStream outStream) throws IOException { listCoder.encode(value.collection, outStream); }
/** * List sizes are always known, so ListIterable may be deterministic while the general * IterableLikeCoder is not. */ @Override public void verifyDeterministic() throws NonDeterministicException { verifyDeterministic(this, "ListCoder.elemCoder must be deterministic", getElemCoder()); }
static String encodeQuery(List<TableRow> rows) throws IOException { ListCoder<TableRow> listCoder = ListCoder.of(TableRowJsonCoder.of()); ByteArrayOutputStream output = new ByteArrayOutputStream(); listCoder.encode(rows, output, Context.OUTER); return Base64.encodeBase64String(output.toByteArray()); }
static List<TableRow> rowsFromEncodedQuery(String query) throws IOException { ListCoder<TableRow> listCoder = ListCoder.of(TableRowJsonCoder.of()); ByteArrayInputStream input = new ByteArrayInputStream(Base64.decodeBase64(query)); List<TableRow> rows = listCoder.decode(input, Context.OUTER); for (TableRow row : rows) { convertNumbers(row); } return rows; }
@Test public void testDefaultCoderInCollection() throws Exception { CoderRegistry registry = CoderRegistry.createDefault(); registry.registerCoderProvider(new DefaultCoderProvider()); Coder<List<AvroRecord>> avroRecordCoder = registry.getCoder(new TypeDescriptor<List<AvroRecord>>() {}); assertThat(avroRecordCoder, instanceOf(ListCoder.class)); assertThat(((ListCoder) avroRecordCoder).getElemCoder(), instanceOf(AvroCoder.class)); assertThat( registry.getCoder(new TypeDescriptor<List<SerializableRecord>>() {}), Matchers.equalTo(ListCoder.of(SerializableCoder.of(SerializableRecord.class)))); }
@Override public TypeDescriptor<List<T>> getEncodedTypeDescriptor() { return new TypeDescriptor<List<T>>(getClass()) {}.where( new TypeParameter<T>() {}, getElemCoder().getEncodedTypeDescriptor()); } }
/** * Ctor requires coder for the element type. * * @param typeCoder coder for the element type */ private CollectionAccumulatorCoder(Coder<T> typeCoder) { this.listCoder = ListCoder.of(typeCoder); }
public BoundedHeapCoder(int maximumSize, ComparatorT compareFn, Coder<T> elementCoder) { listCoder = ListCoder.of(elementCoder); this.compareFn = compareFn; this.maximumSize = maximumSize; }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); } }
@Override public Coder<List<T>> getAccumulatorCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); }
@Override public Coder<List<T>> getAccumulatorCoder(CoderRegistry registry, Coder<T> inputCoder) { return ListCoder.of(inputCoder); }