You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Charles Moulliard (JIRA)" <ji...@apache.org> on 2014/09/01 09:01:20 UTC

[jira] [Updated] (CAMEL-7742) Support grouping separator for Camel Bindy (BigDecimal)

     [ https://issues.apache.org/jira/browse/CAMEL-7742?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Charles Moulliard updated CAMEL-7742:
-------------------------------------
    Summary: Support grouping separator for Camel Bindy (BigDecimal)  (was: Support grouping separtor for Camel Bindy (BigDecimal))

> Support grouping separator for Camel Bindy (BigDecimal)
> -------------------------------------------------------
>
>                 Key: CAMEL-7742
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7742
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-bindy
>    Affects Versions: 2.13.2
>            Reporter: Charles Moulliard
>            Assignee: Charles Moulliard
>
> Issue 
> {code}
> I currently have a problem concerning Camel Bindy. I have a csv file that
> should be parsed with Camel Bindy using a given model class. This csv file
> contains a number that should be parsed as a BigDecimal. The problem is that
> this number contains a comma as a grouping separator and a point as the
> decimal separator.
> If I start the camel route the unmarshal process will throw a
> NumberFormatException mentioning the invalid format of that number. So I
> tried to add a pattern to the DataField annotation, but the error stays.
> After digging throw the documentation (http://camel.apache.org/bindy.html)
> and the source code of FormatFactory
> (http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.camel/camel-bindy/2.13.1/org/apache/camel/dataformat/bindy/FormatFactory.java/?v=source)
> I'm a little bit confused, because the documentation mentions the ability to
> specify a grouping separator, but the source code shows that the pattern is
> ignored for BigDecimal data types.
> Does anyone know how to specify that grouping separator? Or is this not
> implemented yet?
> {code}
> Solution
> {code}
>     public void parsePattern(String formattedString,
>                       Locale locale,
>                       String pattern,
>                       char groupingSeparator,
>                       char decimalSeparator) throws ParseException {
>         DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale);
>         symbols.setGroupingSeparator(groupingSeparator);
>         symbols.setDecimalSeparator(decimalSeparator);
>         DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
>         decimalFormat.setParseBigDecimal(true);
>         // parse the string
>         BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse(formattedString);
>         bigDecimal.setScale(precision);
>         System.out.println(bigDecimal);
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)