When you run the example below, you get a ClassCastException, when you make the change indicated by the comments, the example works fine
Should it be considered a bug or not?
-- def -- <fd:field id="case-widget"> <fd:datatype base="integer"/> <!-- change this to string and it works --> </fd:field>
<fd:union id="extra-widgets" case="case-widget"> <fd:widgets> <fd:field id="extra-field"> <fd:datatype base="string"/> </fd:field> </fd:widgets> </fd:union>
-- bind -- <fb:value id="case-widget" path="pathToAnInteger" />
-- template -- <ft:union id="extra-widgets"> <ft:case id="0"> <ft:widget id="extra-field"/> </ft:case> </ft:union>
(partial) workaround:
If you only need on-load binding, you can work around the problem by making case-widget/datatype/@base="string" and putting this in the binding:
<fb:value id="case-widget" path="concat('',pathToAnInteger)" direction="load"/>