Yes I was thinking about using magritte too
because I did that too in the past. I will look at what you did.
I think that in the future we should really get
- first class instance variables
- internal to class or external mapper from to different formats like
XML
On Feb 22, 2011, at 5:21 PM, Norbert Hartl wrote:
> Stef,
>
> I'm using Magritte for all these cases. We developed a XML binding for
> magritte (http://source.lukas-renggli.ch/magritte2addons/) so it is easy as
>
> User class>>descriptionEmailAddress
> ^ MAStringDescription new
> accessor: #emailAddress;
> priority: 100;
> label: 'Email Address';
> beRequired;
> beXmlAttribute;
> xmlAttributeName: 'email';
> yourself
>
> but you need magritte and it doesn't sound you like to have a lot of
> dependencies. For read support I hacked something with Pastell for a quick
> and flexible read
>
> Example class>>xmodel
> ^ Dictionary new;
> at: #name put: [:node| (node / #Name ) contentString ];
> at: #childObject put: [:node| ExampleReferencedClass node:
> (node / #ChildNode) first ];
> yourself
>
> Example>>at: aSymbol
> ^ (self class xmodel at: aSymbol) value: self node
>
> This is more flexible than easy. For your case you can map just the values.
> The biggest problem will probably be the type conversion. You could have
> setters like cardNumberString: that convert the type. But if I imagine you
> right now I imagine you faceplaming :)
>
> Norbert
>
> On 21.02.2011, at 10:11, stephane ducasse wrote:
>
>> Hi guys
>>
>> I often encounter the following situation: I have an xmldoc and I want to
>> load it and get the corresponding objects.
>> Here is an example
>>
>> <group>
>> <groupName>Test2Cards</groupName>
>> <cards><card>
>> <cardName>All Is Dust</cardName>
>> <manaCost>7</manaCost>
>> <convertedManaCost>7</convertedManaCost>
>> <type>Tribal Sorcery — Eldrazi</type>
>> <cardText>Each player sacrifices all colored permanents he or she
>> controls.</cardText>
>> <rarity>mythic</rarity>
>> <cardNumber>1</cardNumber>
>> <artist>Jason Felix</artist>
>> <kind>STD</kind>
>> <expansionId>ELDRAZI</expansionId>
>> </card>
>> <card>
>> <cardName>Kird Ape</cardName>
>> <manaCost>G</manaCost>
>> <convertedManaCost>1</convertedManaCost>
>> <type>Tribal Sorcery — Eldrazi</type>
>> <cardText>get +1/+1 when you control</cardText>
>> <rarity>common</rarity>
>> <cardNumber>33</cardNumber>
>> <artist>Zork</artist>
>> <kind>STD</kind>
>> <expansionId>WORLDWAKE</expansionId>
>> </card></cards>
>> </group>
>>
>> I have card and group. But I could have several kind of nodes. So I was
>> wondering if there are patterns to read in
>> and map that to objects. In the future I would like to have magritte like
>> type of first class instance variables that
>> perform i/o in xml or other formats because this is always the same.
>>
>> stef
>>
>>
>>
>
>