@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } BigQueryInsertError that = (BigQueryInsertError) o; return Objects.equals(row, that.getRow()) && Objects.equals(error, that.getError()) && Objects.equals(table, that.getTable()); }
/** * Method to wrap a {@link BigQueryInsertError} into a {@link FailsafeElement}. * * @param insertError BigQueryInsert error. * @return FailsafeElement object. * @throws IOException */ private static FailsafeElement<String, String> wrapBigQueryInsertError( BigQueryInsertError insertError) { FailsafeElement<String, String> failsafeElement; try { failsafeElement = FailsafeElement.of( insertError.getRow().toPrettyString(), insertError.getRow().toPrettyString()); failsafeElement.setErrorMessage(insertError.getError().toPrettyString()); } catch (IOException e) { throw new RuntimeException(e); } return failsafeElement; }
@Override public BigQueryInsertError decode(InputStream inStream) throws IOException { TableDataInsertAllResponse.InsertErrors err = MAPPER.readValue( StringUtf8Coder.of().decode(inStream), TableDataInsertAllResponse.InsertErrors.class); TableRow row = TableRowJsonCoder.of().decode(inStream); TableReference ref = BigQueryHelpers.parseTableSpec(StringUtf8Coder.of().decode(inStream)); return new BigQueryInsertError(row, err, ref); }
ImmutableList.of( wrapValue( new BigQueryInsertError( rows.get(0).getValue(), failures.getInsertErrors().get(0), ref)), wrapValue( new BigQueryInsertError( rows.get(1).getValue(), failures.getInsertErrors().get(1), ref)));
@Override protected long getEncodedElementByteSize(BigQueryInsertError value) throws Exception { String errorStrValue = MAPPER.writeValueAsString(value.getError()); String tableStrValue = MAPPER.writeValueAsString(value.getTable()); return StringUtf8Coder.of().getEncodedElementByteSize(errorStrValue) + TableRowJsonCoder.of().getEncodedElementByteSize(value.getRow()) + StringUtf8Coder.of().getEncodedElementByteSize(tableStrValue); }
@Test public void testDecodeEncodeEqual() throws Exception { BigQueryInsertError value = new BigQueryInsertError( new TableRow().setF(Collections.singletonList(new TableCell().setV("Value"))), new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors( Collections.singletonList( new ErrorProto() .setReason("a Reason") .setLocation("A location") .setMessage("A message") .setDebugInfo("The debug info"))), new TableReference() .setProjectId("dummy-project-id") .setDatasetId("dummy-dataset-id") .setTableId("dummy-table-id")); CoderProperties.coderDecodeEncodeEqual(TEST_CODER, value); } }
@Override public void encode(BigQueryInsertError value, OutputStream outStream) throws IOException { String errorStrValue = MAPPER.writeValueAsString(value.getError()); StringUtf8Coder.of().encode(errorStrValue, outStream); TableRowJsonCoder.of().encode(value.getRow(), outStream); StringUtf8Coder.of().encode(BigQueryHelpers.toTableSpec(value.getTable()), outStream); }
new BigQueryInsertError( row2, persistentError, BigQueryHelpers.parseTableSpec(tableSpec))); p.run();