/** Set the custom delimiter to be used in place of the default ones ('\r', '\n' or '\r\n'). */ public Read withDelimiter(byte[] delimiter) { checkArgument(delimiter != null, "delimiter can not be null"); checkArgument(!isSelfOverlapping(delimiter), "delimiter must not self-overlap"); return toBuilder().setDelimiter(delimiter).build(); }
@Test public void testDelimiterSelfOverlaps() { assertFalse(TextIO.Read.isSelfOverlapping(new byte[] {'a', 'b', 'c'})); assertFalse(TextIO.Read.isSelfOverlapping(new byte[] {'c', 'a', 'b', 'd', 'a', 'b'})); assertFalse(TextIO.Read.isSelfOverlapping(new byte[] {'a', 'b', 'c', 'a', 'b', 'd'})); assertTrue(TextIO.Read.isSelfOverlapping(new byte[] {'a', 'b', 'a'})); assertTrue(TextIO.Read.isSelfOverlapping(new byte[] {'a', 'b', 'c', 'a', 'b'})); }