CAMEL-9954: Documentation for changes since 2.18.0
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4cbf2c11 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4cbf2c11 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4cbf2c11 Branch: refs/heads/master Commit: 4cbf2c11201eedad606e97617707bd37fa477bcb Parents: 87129c8 Author: Arno Noordover <[email protected]> Authored: Sat May 21 18:01:00 2016 +0200 Committer: Arno Noordover <[email protected]> Committed: Sat May 21 18:01:00 2016 +0200 ---------------------------------------------------------------------- components/camel-bindy/src/main/docs/bindy.adoc | 58 +++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/4cbf2c11/components/camel-bindy/src/main/docs/bindy.adoc ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/main/docs/bindy.adoc b/components/camel-bindy/src/main/docs/bindy.adoc index f236c2b..2a2a306 100644 --- a/components/camel-bindy/src/main/docs/bindy.adoc +++ b/components/camel-bindy/src/main/docs/bindy.adoc @@ -67,7 +67,8 @@ the POJO like : financial messages), * Section (to identify header, body and footer section), * OneToMany, -* BindyConverter (since 2.18.0) +* BindyConverter (since 2.18.0), +* FormatFactories (since 2.18.0) This section will describe them : @@ -1532,6 +1533,61 @@ Format interface. ... --------------------------------------------------------------------------------------------------- +[[Bindy-10.FormatFactories]] +10. FormatFactories +^^^^^^^^^^^^^^^^^^^ + +The purpose of the annotation @FormatFactories is to define a set of converters +at record-level. The provided classes must implement the FormatFactoryInterface interface. + +[source,java] +--------------------------------------------------------------------------------------------------- + @CsvRecord(separator = ",") + @FormatFactories({OrderNumberFormatFactory.class}) + public static class Order { + + @DataField(pos = 1) + private OrderNumber orderNr; + + @DataField(pos = 2) + private String firstName; + +... + } + + public static class OrderNumber { + private int orderNr; + + public static OrderNumber ofString(String orderNumber) { + OrderNumber result = new OrderNumber(); + result.orderNr = Integer.valueOf(orderNumber); + return result; + } + } + + public static class OrderNumberFormatFactory extends AbstractFormatFactory { + + { + supportedClasses.add(OrderNumber.class); + } + + @Override + public Format<?> build(FormattingOptions formattingOptions) { + return new Format<OrderNumber>() { + @Override + public String format(OrderNumber object) throws Exception { + return String.valueOf(object.orderNr); + } + + @Override + public OrderNumber parse(String string) throws Exception { + return OrderNumber.ofString(string); + } + }; + } + } +--------------------------------------------------------------------------------------------------- + [[Bindy-SupportedDatatypes]] Supported Datatypes ^^^^^^^^^^^^^^^^^^^
