@Override public Parser<String, Object> makeParser() { if (columns == null) { return new RegexParser(pattern, Optional.fromNullable(listDelimiter)); } return new RegexParser(pattern, Optional.fromNullable(listDelimiter), columns); }
@Test public void testMultiValWithRegexSplit() { final String pattern = "(.*)"; final String listPattern = "[a-f]"; final Parser<String, Object> parser = new RegexParser( pattern, Optional.of(listPattern) ); String data = "1a2"; final Map<String, Object> parsed = parser.parseToMap(data); ImmutableMap.Builder builder = ImmutableMap.builder(); builder.put("column_1", Lists.newArrayList("1", "2")); Assert.assertEquals( "result", builder.build(), parsed ); }
@Test public void testMultiVal() { final String pattern = "^([0-9a-f]+) (.*)"; final List<String> fieldNames = Arrays.asList( "Bucket Owner", "Bucket" ); final Parser<String, Object> parser = new RegexParser( pattern, Optional.of("@"), fieldNames ); String data = "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be mybucket@mybucket2"; final Map<String, Object> parsed = parser.parseToMap(data); ImmutableMap.Builder builder = ImmutableMap.builder(); builder.put("Bucket Owner", "79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"); builder.put("Bucket", Lists.newArrayList("mybucket", "mybucket2")); Assert.assertEquals( "result", builder.build(), parsed ); }
@Test(expected = ParseException.class) public void testFailure() { final String pattern = "AAAAA"; final List<String> fieldNames = Collections.singletonList( "dummy" ); final Parser<String, Object> parser = new RegexParser( pattern, Optional.of("@"), fieldNames ); String data = "BBBB"; parser.parseToMap(data); } }
); final Parser<String, Object> parser = new RegexParser( pattern, Optional.absent(),
); final Parser<String, Object> parser = new RegexParser( pattern, Optional.absent(),
@Override public Parser<String, Object> makeParser() { if (columns == null) { return new RegexParser(pattern, Optional.fromNullable(listDelimiter)); } return new RegexParser(pattern, Optional.fromNullable(listDelimiter), columns); }