Top Description Methods
com.opencsv.bean

public Interface FieldMap<I, K extends Comparable<K>, C extends ComplexFieldMapEntry<I, K, T>, T>

Known Direct Implementers
com.opencsv.bean.AbstractFieldMap
Type Parameters
<I>
The initializer type used to build the many-to-one mapping
<K>
Type of the field identifier (key)
<C>
Type of the ComplexFieldMapEntry used. This is specified as a parameter so we can provide type safety and polymorphism through a generic interface on the one hand, and still extend specific implementations with methods needed for that type of complex mapping without having to add every such method to the generic interface.
<T>
The type of the bean
Imports
com.opencsv.exceptions.CsvRequiredFieldEmptyException, java.util.Collection, .Locale

Defines the basic characteristics of a map between field identifiers and their associated BeanFields. Such a mapping requires a method of matching multiple fields. This method will require data to initialize itself. Such a mapping also requires a key to index the BeanField that is to be provided for a match.
Author
Andrew Rucker Jones
Since
4.2

Method Summary

Modifier and TypeMethod and Description
public String[]

Returns:

An array of header names for the output file
generateHeader
(T
One perfect, shining example of how the bean to be written should look. The most crucial thing is, for fields that result from joining multiple fields on reading and thus need to be split on writing, the org.apache.commons.collections4.MultiValuedMap in question must have the complete structure of the header to be generated, even if some values are empty.
bean
)

This method generates a header that can be used for writing beans of the type provided back to a file.

public BeanField<T, K>

Returns:

The BeanField found, or null if none is present
get
(K
The key under which to search for a BeanField
key
)

Gets the BeanField associated with this key.

public BeanField<T, K>

Returns:

If there was a value previously associated with this key, it is returned
put
(K
The key under which to index the provided BeanField
key
,
BeanField<T, K>
The BeanField to be indexed
value
)

Associates the given BeanField with the given key.

public void
putComplex(I
Whatever data the implementation needs to match multiple keys
initializer
,
BeanField<T, K>
The BeanField that is to be returned on a later match
value
)

Adds a BeanField to this map indexed by the data in initializer.

public void
setErrorLocale(Locale
The locale to be used for error messages
errorLocale
)

Sets the locale to be used for error messages.

public Collection<BeanField<T, K>>

Returns:

The values in the map
values
()

Provides all values currently in the map.

Method Detail

generateHeaderback to summary
public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException

This method generates a header that can be used for writing beans of the type provided back to a file. Whether or not this generated header is used is decided by the com.opencsv.bean.MappingStrategy in use. The ordering of the headers should be carefully considered by the implementing class.

Parameters
bean:T

One perfect, shining example of how the bean to be written should look. The most crucial thing is, for fields that result from joining multiple fields on reading and thus need to be split on writing, the org.apache.commons.collections4.MultiValuedMap in question must have the complete structure of the header to be generated, even if some values are empty.

Returns:String[]

An array of header names for the output file

Exceptions
CsvRequiredFieldEmptyException:
If a required header is missing while attempting to write. Since every other header is hard-wired through the bean fields and their associated annotations, this can only happen with multi-valued fields.
getback to summary
public BeanField<T, K> get(K key)

Gets the BeanField associated with this key. If a key could possibly match both a regular, simple key (one added with put(Comparable, BeanField)), and a complex key (one added with putComplex(java.lang.Object, com.opencsv.bean.BeanField)), the simple key is always matched. If a key could match more than one complex key, the return value is undefined.

Parameters
key:K

The key under which to search for a BeanField

Returns:BeanField<T, K>

The BeanField found, or null if none is present

putback to summary
public BeanField<T, K> put(K key, BeanField<T, K> value)

Associates the given BeanField with the given key.

Parameters
key:K

The key under which to index the provided BeanField

value:BeanField<T, K>

The BeanField to be indexed

Returns:BeanField<T, K>

If there was a value previously associated with this key, it is returned

putComplexback to summary
public void putComplex(I initializer, BeanField<T, K> value)

Adds a BeanField to this map indexed by the data in initializer. This is what makes this map special: It allows one to define characteristics of a method to match multiple keys.

Parameters
initializer:I

Whatever data the implementation needs to match multiple keys

value:BeanField<T, K>

The BeanField that is to be returned on a later match

setErrorLocaleback to summary
public void setErrorLocale(Locale errorLocale)

Sets the locale to be used for error messages.

Parameters
errorLocale:Locale

The locale to be used for error messages

valuesback to summary
public Collection<BeanField<T, K>> values()

Provides all values currently in the map.

Returns:Collection<BeanField<T, K>>

The values in the map