Hi folks,
I've a problem. I want to have nice dynamic groovy classes to represent an ugly XML structure (unfortunately JAXB, XmlBeans etc. is not possible). For this goal I need case-sensitive properties to map the element values from XML to my classes.
But Groovy generates automatically lowercase property names due to the JavaBeans specification.
Can I override this feature and preserve my properties?
thanks
Here is an example:
The source XML looks like this:
<data>
<document>
    <linked name="MyDataObject">
        <datarow>
            <element name="Name"></element>
            <element name="CurrentTime"></element>
            <element name="abc"></element>
            <element name="UID"></element>
        </datarow>
    </linked>
    <!--
        Here are a lot of more of <element> and <linked> 
    -->
</document>
</data>
I parse it with XmlParser and let some classes work on the seperate nodes.
class XMLMyDataObject extends MyXMLNodeBaseClassWithDynamicFunctionality {
String Name
String CurrentTime
String abc
String UID
}
The result in this example due to the lowercase names: I can only find 2 elements.
XMLMyDataObject.metaClass.properties ...
name                cannot find XML-Element
currentTime         cannot find XML-Element
abc                 find XML-Element
UID                 find XML-Element
My current situation:
I'm using the pure Java part of my classes to get the property-names calling the getDeclaredFields method.
But the question is still interesting.