org.csveed.row.RowInstructionsImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of csveed Show documentation
Show all versions of csveed Show documentation
Java toolkit for mapping CSV-to-Bean mapping and vice versa. Redirection to Introduction in 5 seconds!
The newest version!
/*
* CSVeed (https://github.com/42BV/CSVeed)
*
* Copyright 2013-2023 CSVeed.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of The Apache Software License,
* Version 2.0 which accompanies this distribution, and is available at
* https://www.apache.org/licenses/LICENSE-2.0.txt
*/
package org.csveed.row;
import org.csveed.token.EncounteredSymbol;
import org.csveed.token.SymbolMapping;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class RowInstructionsImpl.
*/
public class RowInstructionsImpl implements RowInstructions {
/** The Constant LOG. */
private static final Logger LOG = LoggerFactory.getLogger(RowInstructionsImpl.class);
/** The symbol mapping. */
private SymbolMapping symbolMapping = new SymbolMapping();
/** The use header. */
private boolean useHeader = true;
/** The skip empty lines. */
private boolean skipEmptyLines = true;
/** The settings logged. */
private boolean settingsLogged;
/** The quote fields. */
private boolean quoteFields = true;
/**
* Log settings.
*/
public void logSettings() {
if (settingsLogged) {
return;
}
LOG.info("- CSV config / skip empty lines? {}", isSkipEmptyLines() ? "yes" : "no");
LOG.info("- CSV config / has header line? {}", isUseHeader() ? "yes" : "no");
settingsLogged = true;
}
/**
* Gets the symbol mapping.
*
* @return the symbol mapping
*/
public SymbolMapping getSymbolMapping() {
return symbolMapping;
}
/**
* Checks if is skip empty lines.
*
* @return true, if is skip empty lines
*/
public boolean isSkipEmptyLines() {
return skipEmptyLines;
}
@Override
public boolean isUseHeader() {
return useHeader;
}
@Override
public RowInstructions setUseHeader(boolean useHeader) {
this.useHeader = useHeader;
return this;
}
@Override
public RowInstructions setStartRow(int startRow) {
this.symbolMapping.setStartLine(startRow);
return this;
}
@Override
public char getEscape() {
return this.symbolMapping.getFirstMappedCharacter(EncounteredSymbol.ESCAPE_SYMBOL);
}
@Override
public RowInstructions setEscape(char symbol) {
this.symbolMapping.addMapping(EncounteredSymbol.ESCAPE_SYMBOL, symbol);
return this;
}
@Override
public char getQuote() {
return symbolMapping.getFirstMappedCharacter(EncounteredSymbol.QUOTE_SYMBOL);
}
@Override
public RowInstructions setQuotingEnabled(boolean quoteFields) {
this.quoteFields = quoteFields;
return this;
}
@Override
public boolean getQuotingEnabled() {
return quoteFields;
}
@Override
public RowInstructions setQuote(char symbol) {
this.symbolMapping.addMapping(EncounteredSymbol.QUOTE_SYMBOL, symbol);
return this;
}
@Override
public char getSeparator() {
return symbolMapping.getFirstMappedCharacter(EncounteredSymbol.SEPARATOR_SYMBOL);
}
@Override
public RowInstructions setSeparator(char symbol) {
this.symbolMapping.addMapping(EncounteredSymbol.SEPARATOR_SYMBOL, symbol);
return this;
}
@Override
public RowInstructions setComment(char symbol) {
this.symbolMapping.addMapping(EncounteredSymbol.COMMENT_SYMBOL, symbol);
return this;
}
@Override
public char[] getEndOfLine() {
return this.symbolMapping.getMappedCharacters(EncounteredSymbol.EOL_SYMBOL);
}
@Override
public RowInstructions setEndOfLine(char[] symbols) {
this.symbolMapping.addMapping(EncounteredSymbol.EOL_SYMBOL, symbols);
return this;
}
@Override
public RowInstructions skipEmptyLines(boolean skip) {
this.skipEmptyLines = skip;
return this;
}
@Override
public RowInstructions skipCommentLines(boolean skip) {
this.symbolMapping.setSkipCommentLines(skip);
return this;
}
}