What's the exact exception (incl. stack trace) you are getting ?
Werner
SuperMMX wrote:
> 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] ------------- ---------------- ---------------
>
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email