List of usage examples for org.apache.commons.lang3.text StrMatcher noneMatcher
public static StrMatcher noneMatcher()
From source file:com.mgmtp.jfunk.core.util.CsvDataProcessor.java
/** * Processes the specified CSV file. For every line but the header line (which is required), the * specified command is executed.// w w w .j ava 2 s. c om * * @param reader * the reader for loading the CSV data * @param delimiter * the column separator * @param quoteChar * the quote character ('\0' for no quoting) * @param command * the command (i. e. a Groovy closure if used in a Groovy script) to be executed for * every processed line */ public void processFile(final Reader reader, final String delimiter, final char quoteChar, final Runnable command) { try { List<String> inputLines = CharStreams.readLines(reader); StrTokenizer st = StrTokenizer.getCSVInstance(); st.setDelimiterString(delimiter); if (quoteChar != '\0') { st.setQuoteChar(quoteChar); } else { st.setQuoteMatcher(StrMatcher.noneMatcher()); } // extract header String headerLine = inputLines.remove(0); List<Column> columns = initColumns(st, headerLine); for (String line : inputLines) { st.reset(line); String[] colArray = st.getTokenArray(); int len = colArray.length; checkState(len == columns.size(), "Mismatch between number of header columns and number of line columns."); DataSource dataSource = dataSourceProvider.get(); Configuration config = configProvider.get(); for (int i = 0; i < len; ++i) { String value = StringUtils.trimToEmpty(colArray[i]); String dataSetKey = columns.get(i).dataSetKey; String key = columns.get(i).key; if (dataSetKey != null) { if ("<auto>".equals(value)) { dataSource.resetFixedValue(dataSetKey, key); } else { log.debug("Setting data set entry for " + this + " to value=" + value); dataSource.setFixedValue(dataSetKey, key, value); } } else { log.debug("Setting property for " + this + " to value=" + value); config.put(key, value); } } command.run(); } } catch (IOException ex) { throw new JFunkException("Error processing CSV data", ex); } }
From source file:org.kalypso.model.wspm.pdb.internal.gaf.GafReader.java
private GafLine parseLine(final String line) throws CoreException { final StrTokenizer tokenizer = new StrTokenizer(line); tokenizer.setDelimiterMatcher(StrMatcher.trimMatcher()); tokenizer.setQuoteMatcher(StrMatcher.noneMatcher()); tokenizer.setIgnoredMatcher(StrMatcher.noneMatcher()); tokenizer.setTrimmerMatcher(StrMatcher.noneMatcher()); tokenizer.setEmptyTokenAsNull(false); tokenizer.setIgnoreEmptyTokens(false); final String[] tokens = tokenizer.getTokenArray(); if (tokens.length < 9) throw failLine(IStatus.INFO, Messages.getString("GafReader.5")); //$NON-NLS-1$ final Object[] items = parseTokens(tokens); checkCommentLine(items);/* w w w . j a v a 2 s . com*/ final BigDecimal station = asDecimal(items[0], Messages.getString("GafReader.6")); //$NON-NLS-1$ final String pointId = asString(tokens[1]); final BigDecimal width = asDecimalOrNull(items[2], Messages.getString("GafReader.7")); //$NON-NLS-1$ final BigDecimal height = asDecimal(items[3], Messages.getString("GafReader.8")); //$NON-NLS-1$ final String code = asString(tokens[4]).toUpperCase(); final String roughnessClass = asString(tokens[5]); final String vegetationClass = asString(tokens[6]); final BigDecimal hw = asDecimal(items[7], Messages.getString("GafReader.9")); //$NON-NLS-1$ final BigDecimal rw = asDecimal(items[8], Messages.getString("GafReader.10")); //$NON-NLS-1$ final String hyk = tokens.length < 10 ? StringUtils.EMPTY : asString(tokens[9]).toUpperCase(); return new GafLine(station, pointId, width, height, code, roughnessClass, vegetationClass, rw, hw, hyk, Status.OK_STATUS); }