/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.model.dataformat;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.camel.CamelContext;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.Metadata;
/**
* UniVocity CSV data format
*/
@Metadata(firstVersion = "2.15.0", label = "dataformat,transformation,csv", title = "uniVocity CSV")
@XmlRootElement(name = "univocity-csv")
@XmlAccessorType(XmlAccessType.FIELD)
public class UniVocityCsvDataFormat extends UniVocityAbstractDataFormat {
@XmlAttribute
protected Boolean quoteAllFields;
@XmlAttribute @Metadata(defaultValue = "\"")
protected String quote;
@XmlAttribute @Metadata(defaultValue = "\"")
protected String quoteEscape;
@XmlAttribute @Metadata(defaultValue = ",")
protected String delimiter;
public UniVocityCsvDataFormat() {
super("univocity-csv");
}
public Boolean getQuoteAllFields() {
return quoteAllFields;
}
/**
* Whether or not all values must be quoted when writing them.
*/
public void setQuoteAllFields(Boolean quoteAllFields) {
this.quoteAllFields = quoteAllFields;
}
public String getQuote() {
return quote;
}
/**
* The quote symbol.
*/
public void setQuote(String quote) {
this.quote = quote;
}
public String getQuoteEscape() {
return quoteEscape;
}
/**
* The quote escape symbol
*/
public void setQuoteEscape(String quoteEscape) {
this.quoteEscape = quoteEscape;
}
public String getDelimiter() {
return delimiter;
}
/**
* The delimiter of values
*/
public void setDelimiter(String delimiter) {
this.delimiter = delimiter;
}
@Override
protected void configureDataFormat(DataFormat dataFormat, CamelContext camelContext) {
super.configureDataFormat(dataFormat, camelContext);
if (quoteAllFields != null) {
setProperty(camelContext, dataFormat, "quoteAllFields", quoteAllFields);
}
if (quote != null) {
setProperty(camelContext, dataFormat, "quote", singleCharOf("quote", quote));
}
if (quoteEscape != null) {
setProperty(camelContext, dataFormat, "quoteEscape", singleCharOf("quoteEscape", quoteEscape));
}
if (delimiter != null) {
setProperty(camelContext, dataFormat, "delimiter", singleCharOf("delimiter", delimiter));
}
}
}