BeanIO - 如果segment对象为null,如何设置空格

时间:2018-01-16 06:06:28

标签: java apache-camel bean-io

低于当前输出总共有28个字符

1Tit FNameLName          EOL
2Tit           StrCA12345EOL

低于预期的输出总共有18个字符

1Tit FNameLNameEOL
2Tit StrCA12345EOL

如果段对象为空,我试图设置空格,这样我就可以有detail1或detail2但不能同时使用,请帮忙。谢谢。

mapping.xml

<stream name="employeeStream" format="fixedlength">
        <group name="employees" class="com.Employees"
            minOccurs="0" maxOccurs="unbounded">
            <record name="employee" class="com.tEmployee"
                collection="list" minOccurs="1" maxOccurs="unbounded">
                <field name="title" length="5"/>
                <segment name="detail1" class="com.Details1"
                    minOccurs="0" maxOccurs="1">
                    <field name="firstName" length="5"/>
                    <field name="lastName" length="5"/>
                </segment>
                <segment name="detail2" class="com.Details2"
                    minOccurs="0" maxOccurs="1">
                    <field name="street" length="3" />
                    <field name="city" length="2" />
                    <field name="zip" length="5" />
                </segment>
                <field name="end" length="3"/>
            </record>
        </group>
    </stream>

使用的Java代码

ArrayList<Employees> emps = new ArrayList<>();
ArrayList<Employee> emp = new ArrayList<>();

Employees  employees  = new Employees();

Details1 detail1 = new Details1();
detail1.setFirstName("FName");
detail1.setLastName("LName");                                                   

Employee emp1 = new Employee();
emp1.setTitle("1Tit");
emp1.setDetail1(detail1);
emp1.setEnd("EOL");
emp.add(emp1);

Details2 detail2 = new Details2();
detail2.setStreet("Str");
detail2.setCity("CA");
detail2.setZip("12345");

Employee emp2 = new Employee();
emp2.setTitle("2Tit");
emp2.setEnd("EOL");
emp2.setDetail2(detail2);
emp.add(emp2);

employees.setEmployee(emp);

emps.add(employees);

0 个答案:

没有答案