I am trying to map a fixed length messages which may have different segments depending on the value in another field?
For example:
<stream name="employeeFile" format="csv">
<record name="employee" class="example.Employee">
<field name="firstName" length="10" />
<field name="lastName" length="10" />
<field name="title" length="10" />
<field name="salary" length="6" padding="0" justify="right" />
<field name="hireDate" length="8" format="MMddyyyy" />
<field name="segmentEnum" length="10" />
<segment name="mailingAddressSimple" class="example.Address">
<field name="street" length="50" />
<field name="city" length="20" />
<field name="state" length="2" />
<field name="zip" length="5" />
</segment>
<segment name="mailingAddressFull" class="example.FullAddress">
<field name="street" length="30" />
<field name="state" length="2" />
<field name="city" length="20" />
<field name="zip" length="5" />
<field name="country" length="10" />
<field name="phone" length="10" />
</segment>
</record>
</stream>
</beanio>
In this example, I will need to map fixed length messages that has dynamic segments depending on the segmentEnum value. When segmentEnum value is "Simple", use segment "mailingAddressSimple" to map string, but when the value is "Full", map the message by "mailingAddressFull" segment. It's either Simple OR Full.