Ask Me Help Desk

Ask Me Help Desk (https://www.askmehelpdesk.com/forum.php)
-   Java (https://www.askmehelpdesk.com/forumdisplay.php?f=440)
-   -   Setting dynamic list of different type of objects to a Java form bean (https://www.askmehelpdesk.com/showthread.php?t=768374)

  • Sep 23, 2013, 06:32 AM
    crazy287
    Setting dynamic list of different type of objects to a Java form bean
    Scenario:

    I am trying to map the JAXB Java object- 'Coverage' to a Java form bean-'CoverageForm'. I have a List -'coverageList' of Coverage objects.In the Coverage object, I have a list of content objects 'cov.getContent()' of type JAXBElement, Limit,Deductible. I need to set the cov.getContent() list values to a form bean-'CoverageForm'

    Issue:
    cov.getContent() list is dynamic.So for each Coverage object, cov.getContent() can be of size 5 or 3 or anything. How can I set the dynamic list of different objects-'cov.getContent()' to a form bean object-'CoverageForm' ? The below code of Action class do not show the expected result. I have tried to hardcode the index value but it throws ArrayIndexoutOfBoundExeception because in each Coverage object the cov.getContent() can be of size 5 or 3 or anything. If you see I need to set the limit.getFormatInteger() to LowLimit and HighLimit of CoverageForm while looping.How can I achieve this?Please suggest me.

    To get an idea of the XML elements structure-'coverageList' structure is-

    <Coverage>
    <CoverageCd>BI</CoverageCd>
    <CoverageDesc>Bodily Injury Liability</CoverageDesc>
    <Limit>
    <FormatInteger>100000</FormatInteger>
    <LimitAppliesToCd>PerPerson</LimitAppliesToCd>
    </Limit>
    <Limit>
    <FormatInteger>300000</FormatInteger>
    <LimitAppliesToCd>PerAccident</LimitAppliesToCd>
    </Limit>
    </Coverage>
    <Coverage>
    <CoverageCd>PD</CoverageCd>
    <CoverageDesc>Property Damage-Single Limit</CoverageDesc>
    <Limit>
    <FormatInteger>50000</FormatInteger>
    <LimitAppliesToCd>PropDam</LimitAppliesToCd>
    </Limit>
    </Coverage>
    <Coverage>
    ... "CoverageDesc","CoverageCd" are attributes of JAXBElement class.

    public class Limit {

    @XmlElement(name = "FormatInteger")
    protected int formatInteger;
    @XmlElement(name = "LimitAppliesToCd")
    protected String limitAppliesToCd;
    }

    public class Deductible {

    @XmlElement(name = "FormatInteger")
    protected int formatInteger;
    @XmlElement(name = "DeductibleTypeCd")
    protected String deductibleTypeCd;
    }

    public class Coverageform {

    private int vehId;
    private String coverageCd;
    private String coverageDesc;
    private int lowLimit;
    private int highLimit;
    private int deducitble;

    }

    Action class:

    for(int I=0; I<vehicleList.size();i++)
    {
    List coverageList=((Pers) vehicleList.get(I)).getCoverage();

    for (int j=0; j<coverageList.size();j++)
    {
    Coverage cov= (Coverage)coverageList.get(j);

    System.err.println("cov--"+cov);


    //for( Object o: cov.getContent()){
    if( cov.getContent().get(0) instanceof JAXBElement)
    {
    System.err.println("o is JAXBElement");
    JAXBElement jaxbele= (JAXBElement)cov.getContent().get(0);
    coverageForm.setCoverageCd(jaxbele.getValue().toSt ring());
    System.err.println("coverageForm.getCoverageCd()--"+coverageForm.getCoverageCd());
    }
    if( cov.getContent().size()>1 && cov.getContent().get(1) instanceof JAXBElement)
    {
    JAXBElement jaxbele1= (JAXBElement)cov.getContent().get(1);
    coverageForm.setCoverageDesc(jaxbele1.getValue().t oString());
    System.err.println("coverageForm.getCoverageDesc()--"+coverageForm.getCoverageDesc());
    }
    if (cov.getContent().size()>2 && cov.getContent().get(2) instanceof Limit)
    {
    System.err.println("o is Limit");
    Limit limit= (Limit)cov.getContent().get(2);
    coverageForm.setLowLimit(limit.getFormatInteger()) ;
    System.err.println("coverageForm.getLowLimit()--"+coverageForm.getLowLimit());
    }
    if ( cov.getContent().size()==4 && cov.getContent().get(3) instanceof Limit)
    {
    Limit limit1= (Limit)cov.getContent().get(3);
    coverageForm.setHighLimit(limit1.getFormatInteger( ));
    System.err.println("coverageForm.getHighLimit()--"+coverageForm.getHighLimit());
    }
    if (cov.getContent().size()==5 && cov.getContent().get(4) instanceof Deductible)
    {
    System.err.println("o is Deductible");
    Deductible ded= (Deductible)cov.getContent().get(4);
    coverageForm.setDeducitble(ded.getFormatInteger()) ;
    System.err.println("coverageForm.getDeducitble()--"+coverageForm.getDeducitble());
    }

    coverageFormList.add(coverageForm);
    System.err.println("coverageFormList.size--"+coverageFormList.size());

    }

  • All times are GMT -7. The time now is 01:46 AM.