Class BindyAbstractFactory
- java.lang.Object
-
- org.apache.camel.dataformat.bindy.BindyAbstractFactory
-
- All Implemented Interfaces:
BindyFactory
- Direct Known Subclasses:
BindyCsvFactory
,BindyFixedLengthFactory
,BindyKeyValuePairFactory
public abstract class BindyAbstractFactory extends Object implements BindyFactory
TheBindyAbstractFactory
implements what its common to all the formats supported by Camel Bindy
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,List<Field>>
annotatedLinkFields
protected String
crlf
protected String
eol
protected FormatFactory
formatFactory
protected Set<String>
modelClassNames
protected Set<Class<?>>
models
-
Constructor Summary
Constructors Constructor Description BindyAbstractFactory(Class<?> type)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
bind(org.apache.camel.CamelContext camelContext, List<String> data, Map<String,Object> model, int line)
The bind allow to read the content of a record (expressed as a List) and map it to the model classes. Map<String,Object>
factory()
Factory method generating new instances of the model and adding them to a HashMapString
formatString(Format<?> format, Object value)
Format the object into a string according to the format rule definedprotected static Integer
generateKey(Integer key1, Integer key2)
Generate a unique keyString
getCarriageReturn()
Find the carriage return setstatic Object
getDefaultValueForPrimitive(Class<?> clazz)
String
getEndOfLine()
Find the carriage return setString
getLocale()
abstract void
initAnnotatedFields()
Find fields annotated in each class of the modelvoid
initModel()
method uses to initialize the model representing the classes who will bind the data.void
link(Map<String,Object> model)
Link objects togethervoid
setFormatFactory(FormatFactory formatFactory)
void
setLocale(String locale)
boolean
supportsModel(Set<String> classes)
Indicates whether this factory can support a row comprised of the identified classesabstract String
unbind(org.apache.camel.CamelContext camelContext, Map<String,Object> model)
The unbind is used to transform the content of the classes model objects into a string.
-
-
-
Method Detail
-
initModel
public void initModel() throws Exception
method uses to initialize the model representing the classes who will bind the data. This process will scan for classes according to the package name provided, check the annotated classes and fields.- Specified by:
initModel
in interfaceBindyFactory
- Throws:
Exception
-
initAnnotatedFields
public abstract void initAnnotatedFields() throws Exception
Find fields annotated in each class of the model- Throws:
Exception
-
bind
public abstract void bind(org.apache.camel.CamelContext camelContext, List<String> data, Map<String,Object> model, int line) throws Exception
Description copied from interface:BindyFactory
The bind allow to read the content of a record (expressed as a List) and map it to the model classes. - Specified by:
bind
in interfaceBindyFactory
data
- Listrepresents the csv, ... data to transform model
- Mapis a collection of objects used to bind data. String is the key name of the class link to POJO objects line
- is the position of the record into the file- Throws:
Exception
- can be thrown
-
unbind
public abstract String unbind(org.apache.camel.CamelContext camelContext, Map<String,Object> model) throws Exception
Description copied from interface:BindyFactory
The unbind is used to transform the content of the classes model objects into a string. The string represents a record of a CSV file- Specified by:
unbind
in interfaceBindyFactory
model
- Mapis a collection of objects used to create csv, ... records. String is the key name of the class link to POJO objects - Returns:
- String represents a csv record created
- Throws:
Exception
- can be thrown
-
factory
public Map<String,Object> factory() throws Exception
Factory method generating new instances of the model and adding them to a HashMap- Returns:
- Map is a collection of the objects used to bind data from records, messages
- Throws:
Exception
- can be thrown
-
supportsModel
public boolean supportsModel(Set<String> classes)
Indicates whether this factory can support a row comprised of the identified classes- Parameters:
classes
- the names of the classes in the row- Returns:
- true if the model supports the identified classes
-
generateKey
protected static Integer generateKey(Integer key1, Integer key2)
Generate a unique key- Parameters:
key1
- The key of the section numberkey2
- The key of the position of the field- Returns:
- the key generated
-
getCarriageReturn
public String getCarriageReturn()
Find the carriage return set
-
getEndOfLine
public String getEndOfLine()
Find the carriage return set
-
formatString
public String formatString(Format<?> format, Object value) throws Exception
Format the object into a string according to the format rule defined- Throws:
Exception
-
getLocale
public String getLocale()
-
setLocale
public void setLocale(String locale)
-
setFormatFactory
public void setFormatFactory(FormatFactory formatFactory)
-
-