org.nerd4j.csv.conf.mapping.ann.CSVFieldConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nerd4j-csv Show documentation
Show all versions of nerd4j-csv Show documentation
CSV manipulation library.
/*
* #%L
* Nerd4j CSV
* %%
* Copyright (C) 2013 Nerd4j
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Lesser Public License for more details.
*
* You should have received a copy of the GNU General Lesser Public
* License along with this program. If not, see
* .
* #L%
*/
package org.nerd4j.csv.conf.mapping.ann;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Performs type conversion between the value
* of a CSV column and the related data model
* field and vice versa.
*
* Usage
*
* The {@link CSVFieldConverter} annotation is intended
* to be used inside a {@link CSVFieldProcessor} annotation.
*
*
*
* This annotation is equivalent to the XML configuration csv:converter.
*
*
*
* The built in validations types are:
*
* - parseByte : no parameters
* - parseShort : no parameters
* - parseInteger : no parameters
* - parseLong : no parameters
* - parseFloat : no parameters
* - parseDouble : no parameters
* - parseBigInteger : no parameters
* - parseBigDecimal : no parameters
* - parseAtomicInteger : no parameters
* - parseAtomicLong : no parameters
*
* - formatByte : patter = the number format pattern (optional)
* - formatShort : patter = the number format pattern (optional)
* - formatInteger : patter = the number format pattern (optional)
* - formatLong : patter = the number format pattern (optional)
* - formatFloat : patter = the number format pattern (optional)
* - formatDouble : patter = the number format pattern (optional)
* - formatBigInteger : patter = the number format pattern (optional)
* - formatBigDecimal : patter = the number format pattern (optional)
* - formatAtomicInteger: patter = the number format pattern (optional)
* - formatAtomicLong : patter = the number format pattern (optional)
*
* - parseBoolean : no parameters
* - formatBoolean : no parameters
*
* - parseDate : patter = the date format pattern (mandatory)
* - formatDate : patter = the date format pattern (mandatory)
*
* - parseEnum : enum-type = the full qualified enum class name (mandatory)
* - formatEnum : enum-type = the full qualified enum class name (mandatory)
*
*
*
* @author Nerd4j Team
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface CSVFieldConverter
{
/**
* The name used to identify the conversion type to use.
*
* @return name of the conversion type to use.
*/
public String type() default "";
/**
* Array of parameters used to configure the converter.
*
* @return array of parameters used to configure the converter.
*/
public CSVParam[] params() default {};
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy