Yes, I've tried that, but it doesn't work: The unmarshaller complains that
there isn't a get/set for it on the IPMISensors class.  Moving the field
definition into the IPMIPowerSupplySensor class doesn't work right either; I
don't want to set the attribute on every instance, just on the container.

In short, I'd like to create a subclass of ArrayList (or some other
collection type) on which I can set that property, without having to resort
to creating an artificial container-of-container class.  Think of it as a
decorator, I guess.

Jeff

2008/12/5 Ralf Joachim <[EMAIL PROTECTED]>

>  Hi Jeff,
>
> have you already tried something like:
>
>   <class name="mypackage.sensors.IPMISensors" auto-complete="false"
>               verify-constructable="false">
>     <field name="redund" type="boolean">
>             <bind-xml name="redund" location="psSensors" node="attribute"
> />
>     </field>
>     <field name="powerSupplySensors"
>                type="mypackage.sensors.IPMIPowerSupplySensor"
>                required="false" direct="false" transient="false"
>                container="false" collection="collection">
>             <bind-xml name="psSensors" node="element" />
>     </field>
>   </class>
>
> Regards
> Ralf
>
>
> Jeff Crump schrieb:
>
> Hi Werner,
>
>  I would prefer to not use the intermediate class approach. Can you point
> me to documentation on the property approach?  Thanks.
>
> Jeff
>
> 2008/12/5 Werner Guttmann <[EMAIL PROTECTED]>
>
>> Hi Jeff,
>>
>> Jeff Crump wrote:
>> > I'm having trouble unmarshalling a list of elements into a collection
>> that
>> > itself has an attribute:
>> >
>> > <ipmiSensors>
>> >    <psSensors redund="True">
>> >       <powerSupply  status="ok"  present="True"   name="Power Supply1"/>
>> >       <powerSupply  status="ok"  present="True"   name="Power Supply2"/>
>> >    </psSensors>
>> > </ipmiSensors>
>> >
>> > If I ignore the 'redund' attribute, I can unmarshall this into a
>> > Collection<T> instance easily:
>> >
>> > <class name="mypackage.sensors.IPMISensors" auto-complete="false"
>> > verify-constructable="false">
>> >    <field name="powerSupplySensors"
>> > type="mypackage.sensors.IPMIPowerSupplySensor"
>> >                required="false" direct="false" transient="false"
>> > container="false" collection="collection">
>> >            <bind-xml name="psSensors" node="element" />
>> >    </field>
>> > </class>
>> >
>> > This does exactly what I would expect, and add the <powerSupply>
>> instances
>> > to the Collection.
>> >
>> > But that attribute on the <psSensors> element is puzzling me.
>> Obviously I
>> > can't unmarshall this into a Collection<T> anymore - I have to create my
>> own
>> > subclass of, say, ArrayList<T>, right?   Except nothing I try seems to
>> work.
>> >
>> > Am I on the right track?
>>  No, not really. Let me ask you a question and suggest one possible
>> solution.
>>
>> Question: where (in your object model) would you like to store the value
>> of the 'redund' attribute.
>>
>> Possible solution:
>>
>> a) Store the attribute value in a property on the class
>> mypackage.sensors.IPMISensors, and use a location in the XML binding for
>> this attribute.
>> b) Create an intermediate class for <psSensors> that has two members,
>> one for the collection of PowerSupply#s and one for the attribute value.
>>
>> > I really don't want to create a collection within
>> > a collection -- I don't want to make this one class different than all
>> of
>> > the others in the set I'm working with.
>> >
>> > Any advice?
>> >
>> > Jeff
>> >
>>
>>  ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>>
>
> --
>
> Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
> Ralf Joachim
> Raiffeisenstraße 11
> 72127 Kusterdingen
> Germany
>
> Tel.   +49 7071 3690 52
> Mobil: +49 173 9630135
> Fax    +49 7071 3690 98
>
> Internet: www.syscon.eu
> E-Mail: [EMAIL PROTECTED]
>
> Sitz der Gesellschaft: D-72127 Kusterdingen
> Registereintrag: Amtsgericht Stuttgart, HRB 382295
> Geschäftsleitung: Jens Joachim, Ralf Joachim
>
>

Reply via email to