/** * Returns a {@link FixedLengthTokenizer} * * @return a {@link FixedLengthTokenizer} */ public FixedLengthTokenizer build() { Assert.notNull(this.fieldSetFactory, "A FieldSetFactory is required."); Assert.notEmpty(this.names, "A list of field names is required."); Assert.notEmpty(this.ranges, "A list of column ranges is required."); FixedLengthTokenizer tokenizer = new FixedLengthTokenizer(); tokenizer.setNames(this.names.toArray(new String[this.names.size()])); tokenizer.setColumns(this.ranges.toArray(new Range[this.ranges.size()])); tokenizer.setFieldSetFactory(this.fieldSetFactory); tokenizer.setStrict(this.strict); return tokenizer; } }
@Test public void testTokenizerInvalidSetup() { tokenizer.setNames(new String[] { "a", "b" }); tokenizer.setColumns(new Range[] { new Range(1, 5) }); try { tokenizer.tokenize("12345"); fail("Exception was expected: too few names provided"); } catch (IncorrectTokenCountException e) { assertEquals(2, e.getExpectedCount()); assertEquals(1, e.getActualCount()); } }
/** * Returns a {@link FixedLengthTokenizer} * * @return a {@link FixedLengthTokenizer} */ public FixedLengthTokenizer build() { Assert.notNull(this.fieldSetFactory, "A FieldSetFactory is required."); Assert.notEmpty(this.names, "A list of field names is required."); Assert.notEmpty(this.ranges, "A list of column ranges is required."); FixedLengthTokenizer tokenizer = new FixedLengthTokenizer(); tokenizer.setNames(this.names.toArray(new String[this.names.size()])); tokenizer.setColumns(this.ranges.toArray(new Range[this.ranges.size()])); tokenizer.setFieldSetFactory(this.fieldSetFactory); tokenizer.setStrict(this.strict); return tokenizer; } }