Assert.notEmpty(this.names, "A list of field names is required"); DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(); tokenizer.setNames(this.names.toArray(new String[this.names.size()])); tokenizer.setDelimiter(this.delimiter); tokenizer.setQuoteCharacter(this.quoteCharacter); tokenizer.setIncludedFields(fields); tokenizer.setFieldSetFactory(this.fieldSetFactory); tokenizer.setStrict(this.strict); tokenizer.afterPropertiesSet();
@Test(expected=IllegalArgumentException.class) public void testDelimitedLineTokenizerEmptyString() throws Exception { DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(""); tokenizer.afterPropertiesSet(); tokenizer.tokenize("a b c"); }
private LineTokenizer getTokenizer(String line){ this.columnNames = line.split(DelimitedLineTokenizer.DELIMITER_COMMA); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setQuoteCharacter(DelimitedLineTokenizer.DEFAULT_QUOTE_CHARACTER); lineTokenizer.setStrict(false); lineTokenizer.setNames(columnNames); return lineTokenizer; }
@Bean public LineMapper<Partner> lineMapper(){ DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>(); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setNames(new String[]{"name","email"}); lineTokenizer.setIncludedFields(new int[]{0,2}); BeanWrapperFieldSetMapper<Partner> fieldSetMapper = new BeanWrapperFieldSetMapper<Partner>(); fieldSetMapper.setTargetType(Partner.class); lineMapper.setLineTokenizer(lineTokenizer); lineMapper.setFieldSetMapper(fieldSetMapper); return lineMapper; }
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(); tokenizer.setNames(line.split(",")); tokenizer.setStrict(false);
@Test(expected=IllegalArgumentException.class) public void testDelimitedLineTokenizerNullDelimiter() { AbstractLineTokenizer tokenizer = new DelimitedLineTokenizer(null); tokenizer.tokenize("a b c"); }
@Test public void testConcurrentUsage() throws Exception { final BeanWrapperFieldSetMapper<GreenBean> mapper = new BeanWrapperFieldSetMapper<>(); mapper.setStrict(true); mapper.setTargetType(GreenBean.class); // mapper.setDistanceLimit(0); final DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); String[] names = { "blue", "green" }; lineTokenizer.setNames(names); ExecutorService executorService = Executors.newFixedThreadPool(5); Collection<Future<Boolean>> results = new ArrayList<>(); for (int i = 0; i < 10; i++) { Future<Boolean> result = executorService.submit(new Callable<Boolean>() { @Override public Boolean call() throws Exception { for (int i = 0; i < 10; i++) { GreenBean bean = mapper.mapFieldSet(lineTokenizer.tokenize("blue,green")); Assert.assertEquals("green", bean.getGreen()); } return true; } }); results.add(result); } for (Future<Boolean> future : results) { assertTrue(future.get()); } }
@Test(expected = NotWritablePropertyException.class) public void testFuzzyMatchingWithKeyCandidateCollision() throws BindException { BeanWrapperFieldSetMapper<GreenBean> mapper = new BeanWrapperFieldSetMapper<>(); mapper.setStrict(true); mapper.setTargetType(GreenBean.class); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); String[] names = { "brown", "green", "great", "groin", "braun" }; lineTokenizer.setNames(names); GreenBean bean = mapper.mapFieldSet(lineTokenizer.tokenize("brown,green,great,groin,braun")); Assert.assertEquals("green", bean.getGreen()); }
private LineTokenizer createStudentLineTokenizer() { DelimitedLineTokenizer studentLineTokenizer = new DelimitedLineTokenizer(); studentLineTokenizer.setDelimiter(";"); studentLineTokenizer.setNames(new String[]{"name", "emailAddress", "purchasedPackage"}); return studentLineTokenizer; }
@Test(expected=IncorrectTokenCountException.class) public void testTokenizeWithIncludedFieldsAndTooFewNames() { tokenizer.setIncludedFields(new int[] {1,2}); tokenizer.setNames(new String[] {"foo"}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\",\"d\""); assertEquals(2, line.getFieldCount()); assertEquals("c", line.readString("bar")); }
@Test public void testTokenizeOverMultipleLines() { tokenizer = new DelimitedLineTokenizer(";"); FieldSet line = tokenizer.tokenize("value1;\"value2\nvalue2cont\";value3;value4"); assertEquals(4, line.getFieldCount()); assertEquals("value2\nvalue2cont", line.readString(1)); }
@Test public void testTokenizeWithNotDefaultQuotes() { tokenizer.setQuoteCharacter('\''); FieldSet line = tokenizer.tokenize("a,b,'c'"); assertEquals(3, line.getFieldCount()); assertEquals("c", line.readString(2)); }
@Test public void testTokenizeWithIncludedFieldsAndEmptyEnd() { tokenizer.setIncludedFields(new int[] {1,3}); FieldSet line = tokenizer.tokenize("\"a\",\"b\",\"c\","); assertEquals(2, line.getFieldCount()); assertEquals("", line.readString(1)); }
/** * Create a new instance of the {@link DelimitedLineTokenizer} class. * * @param delimiter the desired delimiter. This is required */ public DelimitedLineTokenizer(String delimiter) { Assert.notNull(delimiter, "A delimiter is required"); Assert.state(!delimiter.equals(String.valueOf(DEFAULT_QUOTE_CHARACTER)), "[" + DEFAULT_QUOTE_CHARACTER + "] is not allowed as delimiter for tokenizers."); this.delimiter = delimiter; setQuoteCharacter(DEFAULT_QUOTE_CHARACTER); }
private LineTokenizer getTokenizer(String line){ this.columnNames = line.split(delimiter); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setQuoteCharacter(quoteCharacter); lineTokenizer.setDelimiter(delimiter); lineTokenizer.setStrict(false); lineTokenizer.setNames(columnNames); addColumnNames(); return lineTokenizer; }
@Bean public LineMapper<Partner> lineMapper(){ DefaultLineMapper<Partner> lineMapper = new DefaultLineMapper<Partner>(); DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setNames(new String[]{"name","email","gender"}); lineTokenizer.setIncludedFields(new int[]{0,2,3}); BeanWrapperFieldSetMapper<Partner> fieldSetMapper = new BeanWrapperFieldSetMapper<Partner>(); fieldSetMapper.setTargetType(Partner.class); lineMapper.setLineTokenizer(lineTokenizer); lineMapper.setFieldSetMapper(fieldSetMapper); return lineMapper; }
reader.setResource(resource); DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer(); tokenizer.setNames(line.split(",")); tokenizer.setStrict(false);
@Test public void testInvalidConstructorArgument() { try { new DelimitedLineTokenizer(String.valueOf(DelimitedLineTokenizer.DEFAULT_QUOTE_CHARACTER)); fail("Quote character can't be used as delimiter for delimited line tokenizer!"); } catch (Exception e) { assertTrue(true); } }