Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Map XMLChoiceCollectionMapping to a Map

Hi Magnus,

Ideally you would be able to do this using a MapContainerPolicy. Unfortunately, the MapContainerPolicy doesn't really support heterogeneous collections, as it assumes there's just 1 element class and 1 field/method that is used to obtain the key from the element when populating the map.

You could handle this case with a custom attribute accessor that just returns the values() from the Map on the getAttributeValueFromObject and manually builds the map from the list on setAttributeValueInObject.

If you'd like to open an EclipseLink bug about MapContainerPolicy not being supported by XMLChoiceCollectionMappings, that is something we could definitely support in the future.

Hope that helps,

-Matt

On 21/09/2011 3:12 AM, Magnus Heino wrote:

Hi.

I have this mapping that maps to an ArrayList. Is it possible to change it to a HashMap?


        XMLChoiceCollectionMapping add = new XMLChoiceCollectionMapping();
        add.setAttributeName("add");
        add.addChoiceElement("ex:Nytt/landreg:IR_Fastighet", IR_Fastighet.class);
        add.addChoiceElement("ex:Nytt/landreg:Gruppinformation", Gruppinformation.class);
        add.addChoiceElement("ex:Nytt/landreg:IM_Omrade", IM_Omrade.class);
        add.addChoiceElement("ex:Nytt/landreg:IM_PagaendeArende", IM_PagaendeArende.class);
        add.addChoiceElement("ex:Nytt/landreg:Inteckning", Inteckning.class);
        add.addChoiceElement("ex:Nytt/landreg:Inteckningsanmarkning", Inteckningsanmarkning.class);
        add.addChoiceElement("ex:Nytt/landreg:Innehavsanteckning", Innehavsanteckning.class);
        add.addChoiceElement("ex:Nytt/landreg:OvrigInnehavare", OvrigInnehavare.class);
        add.addChoiceElement("ex:Nytt/landreg:IR_Belastar", IR_Belastar.class);
        add.addChoiceElement("ex:Nytt/landreg:Inskrivningshandelse", Inskrivningshandelse.class);
        add.addChoiceElement("ex:Nytt/ex:Verksamhetsarende", BusinessCase.class);
        add.useCollectionClass(ArrayList.class);
        forandring.addMapping(add);

--

  /Magnus Heino
_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users

Back to the top