org.apache.camel.dataformat.bindy
Class BindyAbstractFactory

java.lang.Object
  extended by org.apache.camel.dataformat.bindy.BindyAbstractFactory
All Implemented Interfaces:
BindyFactory
Direct Known Subclasses:
BindyCsvFactory, BindyFixedLengthFactory, BindyKeyValuePairFactory

public abstract class BindyAbstractFactory
extends Object
implements BindyFactory

The BindyAbstractFactory implements what its common to all the formats supported by Camel Bindy


Field Summary
protected  Map<String,List<Field>> annotatedLinkFields
           
protected  String crlf
           
protected  Set<Class<?>> models
           
 
Constructor Summary
BindyAbstractFactory(org.apache.camel.spi.PackageScanClassResolver resolver, String... packageNames)
           
 
Method Summary
abstract  void bind(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 HashMap
 String formatString(Format format, Object value)
          Format the object into a string according to the format rue defined
protected static Integer generateKey(Integer key1, Integer key2)
          Generate a unique key
 String getCarriageReturn()
          Find the carriage return set
static Object getDefaultValueForPrimitive(Class<?> clazz)
           
 String getLocale()
           
abstract  void initAnnotatedFields()
          Find fields annotated in each class of the model
 void initModel()
          method uses to initialize the model representing the classes who will bind the data.
 void link(Map<String,Object> model)
          Link objects together
 void setLocale(String locale)
           
abstract  String unbind(Map<String,Object> model)
          The unbind is used to transform the content of the classes model objects into a string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

annotatedLinkFields

protected final Map<String,List<Field>> annotatedLinkFields

models

protected Set<Class<?>> models

crlf

protected String crlf
Constructor Detail

BindyAbstractFactory

public BindyAbstractFactory(org.apache.camel.spi.PackageScanClassResolver resolver,
                            String... packageNames)
                     throws Exception
Throws:
Exception
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 interface BindyFactory
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(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 interface BindyFactory
Parameters:
data - List represents the csv, ... data to transform
model - Map is a collection of objects used to bind data. String is the 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(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 interface BindyFactory
Parameters:
model - Map is a collection of objects used to create csv, ... records. String is the the key name of the class link to POJO objects
Returns:
String represents a csv record created
Throws:
Exception - can be thrown

link

public void link(Map<String,Object> model)
          throws Exception
Link objects together

Throws:
Exception

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

generateKey

protected static Integer generateKey(Integer key1,
                                     Integer key2)
Generate a unique key

Parameters:
key1 - The key of the section number
key2 - The key of the position of the field
Returns:
the key generated

getDefaultValueForPrimitive

public static Object getDefaultValueForPrimitive(Class<?> clazz)
                                          throws Exception
Throws:
Exception

getCarriageReturn

public String getCarriageReturn()
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 rue defined

Throws:
Exception

getLocale

public String getLocale()

setLocale

public void setLocale(String locale)


Apache CAMEL