hi, all,
I use the an Integer as the key in map collection in my mapping file,
but it is always String. So I can't retrieve the value by providing an int key.
Am I missing something here? Thanks for all your help.
I am not subscribed to this list, please CC me.
Enclosed are my testing files.
mapping::
<?xml version="1.0"?>
<mapping>
<class name="com.Parent">
<map-to xml="parent" />
<field name="children" type="com.Child" collection="map">
<bind-xml name="child">
</bind-xml>
</field>
</class>
<class name="com.Child" identity="id">
<map-to xml="child" />
<field name="id" type="integer">
<bind-xml name="id" node="attribute">
</bind-xml>
</field>
</class>
</mapping>
xml file:
<?xml version="1.0"?>
<parent>
<child id="1"/>
<child id="2"/>
</parent>
Parent.java
package com;
import java.util.HashMap;
import java.util.Map;
public class Parent {
private HashMap<Integer, Child> children;
public Map<Integer, Child> getChildren() {
return children;
}
public void setChildren(Map<Integer, Child> children) {
this.children = new HashMap<Integer, Child>(children);
}
}
Child.java
package com;
public class Child {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
My unit test :
@Test public void test() {
try {
InputStream is = getClass().getResourceAsStream("/mapping.xml");
Mapping mapping = new Mapping(getClass().getClassLoader());
mapping.loadMapping(new InputSource(is));
unmar = new Unmarshaller(mapping);
unmar.setIgnoreExtraElements(true);
InputStream stream = getClass().getResourceAsStream("/test.xml");
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.parse(stream, "parent");
doc.getDocumentElement().normalize();
String exprStr = "/parent";
XPathExpression expr = xpath.compile(exprStr);
Node node = (Node)expr.evaluate(doc, XPathConstants.NODE);
Parent parent = (Parent)unmar.unmarshal((Element)node);
System.err.println(parent.getChildren());
for (Map.Entry entry : parent.getChildren().entrySet()) {
System.err.println("key class = " + entry.getKey().getClass());
}
} catch (Exception e) {
e.printStackTrace();
}
}
The Result is :
[junit] ------------- Standard Error -----------------
[junit] [EMAIL PROTECTED], [EMAIL PROTECTED]
[junit] key class = class java.lang.String
[junit] key class = class java.lang.String
[junit] ------------- ---------------- ---------------
--
A. Because it makes the logic of the discussion difficult to follow.
Q. Why shoudn't I top post?
A. No.
Q Should I top post?
A: Because it destroys the flow of the conversation
Q: Why is it bad?
A: No, it's bad.
Q: Should I top post in replies to mailing lists?
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email