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
The BindyAbstractFactory implements what its common to all the formats supported by Camel Bindy
  • Field Details

  • Constructor Details

  • Method Details

    • 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(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 interface BindyFactory
      data - List represents the csv, ... data to transform
      model - Map<String, object> is 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 interface BindyFactory
      model - Map<String, Object> is 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
    • link

      public void link(Map<String,Object> model)
      Link objects together
    • 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 number
      key2 - The key of the position of the field
      Returns:
      the key generated
    • getDefaultValueForPrimitive

      public static Object getDefaultValueForPrimitive(Class<?> clazz)
    • 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)