Class BeanConversionProcessor<T>
- java.lang.Object
-
- com.univocity.parsers.common.DefaultConversionProcessor
-
- com.univocity.parsers.common.processor.core.BeanConversionProcessor<T>
-
- Type Parameters:
T
- the annotated class type.
- All Implemented Interfaces:
ConversionProcessor
- Direct Known Subclasses:
AbstractBeanProcessor
,BeanWriterProcessor
public class BeanConversionProcessor<T> extends DefaultConversionProcessor
The base class forProcessor
andRowWriterProcessor
implementations that support java beans annotated with the annotations provided incom.univocity.parsers.annotations
.- Author:
- uniVocity Software Pty Ltd - parsers@univocity.com
- See Also:
Processor
,RowWriterProcessor
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
initialized
protected java.util.Set<FieldMapping>
parsedFields
-
Constructor Summary
Constructors Constructor Description BeanConversionProcessor(java.lang.Class<T> beanType)
Deprecated.Use theBeanConversionProcessor(Class, MethodFilter)
constructor instead.BeanConversionProcessor(java.lang.Class<T> beanType, MethodFilter methodFilter)
Initializes the BeanConversionProcessor with the annotated bean class
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addConversion(Conversion conversion, FieldMapping mapping)
Associates a conversion to a field of the java bean class.T
createBean(java.lang.String[] row, Context context)
Converts a record with values extracted from the parser into a java bean instance.java.lang.Class<T>
getBeanClass()
Returns the class of the annotated java bean instances that will be manipulated by this processor.void
initialize()
Identifies and extracts fields annotated with theParsed
annotationprotected void
initialize(java.lang.String[] headers)
Identifies and extracts fields annotated with theParsed
annotationboolean
isStrictHeaderValidationEnabled()
Returns a flag indicating whether all headers declared in the annotated class must be present in the input.protected boolean
processField(FieldMapping field)
Determines whether or not an annotated field should be processed.java.lang.Object[]
reverseConversions(T bean, java.lang.String[] headers, int[] indexesToWrite)
Converts a java bean instance into a sequence of values for writing.void
setStrictHeaderValidationEnabled(boolean strictHeaderValidationEnabled)
Defines whether all headers declared in the annotated class must be present in the input.-
Methods inherited from class com.univocity.parsers.common.DefaultConversionProcessor
applyConversions, convertAll, convertFields, convertIndexes, convertType, handleConversionError, initializeConversions, reverseConversions, toDataProcessingException
-
-
-
-
Field Detail
-
parsedFields
protected final java.util.Set<FieldMapping> parsedFields
-
initialized
protected boolean initialized
-
-
Constructor Detail
-
BeanConversionProcessor
@Deprecated public BeanConversionProcessor(java.lang.Class<T> beanType)
Deprecated.Use theBeanConversionProcessor(Class, MethodFilter)
constructor instead.Initializes the BeanConversionProcessor with the annotated bean class. If any method of the given class has annotations, only the setter methods will be used (getters will be ignored), making this processor useful mostly for parsing into instances of the given class.- Parameters:
beanType
- the class annotated with one or more of the annotations provided incom.univocity.parsers.annotations
.
-
BeanConversionProcessor
public BeanConversionProcessor(java.lang.Class<T> beanType, MethodFilter methodFilter)
Initializes the BeanConversionProcessor with the annotated bean class- Parameters:
beanType
- the class annotated with one or more of the annotations provided incom.univocity.parsers.annotations
.methodFilter
- filter to apply over annotated methods when the processor is reading data from beans (to write values to an output) or writing values into beans (when parsing). It is used to choose either a "get" or a "set" method annotated withParsed
, when both methods target the same field.
-
-
Method Detail
-
isStrictHeaderValidationEnabled
public boolean isStrictHeaderValidationEnabled()
Returns a flag indicating whether all headers declared in the annotated class must be present in the input. If enabled, an exception will be thrown in case the input data does not contain all headers required.- Returns:
- flag indicating whether strict validation of headers is enabled.
-
initialize
public final void initialize()
Identifies and extracts fields annotated with theParsed
annotation
-
initialize
protected final void initialize(java.lang.String[] headers)
Identifies and extracts fields annotated with theParsed
annotation- Parameters:
headers
- headers parsed from the input.
-
setStrictHeaderValidationEnabled
public void setStrictHeaderValidationEnabled(boolean strictHeaderValidationEnabled)
Defines whether all headers declared in the annotated class must be present in the input. If enabled, an exception will be thrown in case the input data does not contain all headers required.- Parameters:
strictHeaderValidationEnabled
- flag indicating whether strict validation of headers is enabled.
-
processField
protected boolean processField(FieldMapping field)
Determines whether or not an annotated field should be processed. Can be overridden by subclasses for fine grained control.- Parameters:
field
- the field to be processed- Returns:
true
if the given field should be processed, otherwisefalse
.
-
addConversion
protected void addConversion(Conversion conversion, FieldMapping mapping)
Associates a conversion to a field of the java bean class.- Parameters:
conversion
- The conversion object that must be executed against the given fieldmapping
- the helper object that contains information about how a field is mapped.
-
createBean
public T createBean(java.lang.String[] row, Context context)
Converts a record with values extracted from the parser into a java bean instance.- Parameters:
row
- The values extracted from the parsercontext
- The current state of the parsing process- Returns:
- an instance of the java bean type defined in this class constructor.
-
reverseConversions
public final java.lang.Object[] reverseConversions(T bean, java.lang.String[] headers, int[] indexesToWrite)
Converts a java bean instance into a sequence of values for writing.- Parameters:
bean
- an instance of the type defined in this class constructor.headers
- All field names used to produce records in a given destination. May be null if no headers have been defined inCommonSettings.getHeaders()
indexesToWrite
- The indexes of the headers that are actually being written. May be null if no fields have been selected usingCommonSettings.selectFields(String...)
orCommonSettings.selectIndexes(Integer...)
- Returns:
- a row of objects containing the values extracted from the java bean
-
getBeanClass
public java.lang.Class<T> getBeanClass()
Returns the class of the annotated java bean instances that will be manipulated by this processor.- Returns:
- the class of the annotated java bean instances that will be manipulated by this processor.
-
-