Package com.opencsv.bean
Class BeanFieldSplit<T,I>
java.lang.Object
com.opencsv.bean.AbstractBeanField<T,I>
com.opencsv.bean.BeanFieldSplit<T,I>
- Type Parameters:
T
- The type of the bean being populatedI
- Type of the index into a multivalued field
- All Implemented Interfaces:
BeanField<T,
I>
This class concerns itself with handling collection-valued bean fields.
- Since:
- 4.2
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Pattern
private final Class
<? extends Collection> private final Class
<?> private final Pattern
private final String
private final String
Fields inherited from class com.opencsv.bean.AbstractBeanField
converter, errorLocale, field, fieldAccess, required, type
-
Constructor Summary
ConstructorsConstructorDescriptionBeanFieldSplit
(Class<?> type, Field field, boolean required, Locale errorLocale, CsvConverter converter, String splitOn, String writeDelimiter, Class<? extends Collection> collectionType, Class<?> elementType, String capture, String format) The only valid constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected Object
This method manages the collection being created as well as splitting the data.protected String
convertToWrite
(Object value) Manages converting a collection of values into a single string.protected boolean
isFieldEmptyForWrite
(Object value) Checks thatvalue
is not null and not an emptyCollection
.Methods inherited from class com.opencsv.bean.AbstractBeanField
assignValueToField, getErrorLocale, getField, getFieldValue, getType, indexAndSplitMultivaluedField, isRequired, setErrorLocale, setField, setFieldValue, setRequired, setType, write
-
Field Details
-
splitOn
-
capture
-
writeDelimiter
-
writeFormat
-
collectionType
-
elementType
-
-
Constructor Details
-
BeanFieldSplit
public BeanFieldSplit(Class<?> type, Field field, boolean required, Locale errorLocale, CsvConverter converter, String splitOn, String writeDelimiter, Class<? extends Collection> collectionType, Class<?> elementType, String capture, String format) The only valid constructor.- Parameters:
type
- The type of the class in which this field is found. This is the type as instantiated by opencsv, and not necessarily the type in which the field is declared in the case of inheritance.field
- AField
object.required
- Whether or not this field is required in inputerrorLocale
- The errorLocale to use for error messages.converter
- The converter to be used to perform the actual data conversionsplitOn
- SeeCsvBindAndSplitByName.splitOn()
writeDelimiter
- SeeCsvBindAndSplitByName.writeDelimiter()
collectionType
- SeeCsvBindAndSplitByName.collectionType()
elementType
- SeeCsvBindAndSplitByName.elementType()
capture
- SeeCsvBindAndSplitByName.capture()
format
- The format string used for packaging values to be written. Ifnull
or empty, it is ignored.
-
-
Method Details
-
convert
protected Object convert(String value) throws CsvDataTypeMismatchException, CsvConstraintViolationException This method manages the collection being created as well as splitting the data. Once the data are split, they are sent to the converter for the actual conversion.- Specified by:
convert
in classAbstractBeanField<T,
I> - Parameters:
value
- The string from the selected field of the CSV file. If the field is marked as required in the annotation, this value is guaranteed not to be null, empty or blank according toStringUtils.isBlank(java.lang.CharSequence)
- Returns:
- An
Object
representing the input data converted into the proper type - Throws:
CsvDataTypeMismatchException
- If the input string cannot be converted into the proper typeCsvConstraintViolationException
- When the internal structure of data would be violated by the data in the CSV file- See Also:
-
convertToWrite
Manages converting a collection of values into a single string. The conversion of each individual value is performed by the converter.- Overrides:
convertToWrite
in classAbstractBeanField<T,
I> - Parameters:
value
- The contents of the field currently being processed from the bean to be written. Can be null if the field is not marked as required.- Returns:
- A string representation of the value of the field in question in
the bean passed in, or an empty string if
value
is null - Throws:
CsvDataTypeMismatchException
- This implementation does not throw this exception- See Also:
-
isFieldEmptyForWrite
Checks thatvalue
is not null and not an emptyCollection
.- Overrides:
isFieldEmptyForWrite
in classAbstractBeanField<T,
I> - Parameters:
value
- The value of a field out of a bean that is being written to a CSV file. Can benull
.- Returns:
- Whether or not this implementation considers
value
to be empty for the purposes of its conversion
-