[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: setting managed property of type List
alesj
do-not-reply at jboss.com
Fri Dec 7 08:15:54 EST 2007
Hmmm, looking at the MetaValueFactory.create(Object value) for value == List(Integer), this seems to be broken or at least the relevant information about element values gets lost.
This is what this method returns for non-empty Integer ArrayList.
| metaValue: org.jboss.metatype.api.values.MetaValue = {org.jboss.metatype.api.values.ArrayValueSupport at 824}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue; dims=1 elementType=MutableCompositeMetaType{java.lang.Object}:[CompositeValueSupport: metaType=[MutableCompositeMetaType{java.lang.Object}] items=[], CompositeValueSupport: metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]]"
| metaType: org.jboss.metatype.api.types.ArrayMetaType = {org.jboss.metatype.api.types.ArrayMetaType at 829}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue; dims=1 elementType=MutableCompositeMetaType{java.lang.Object}"
| dimension: int = 1
| elementType: org.jboss.metatype.api.types.MetaType = {org.jboss.metatype.plugins.types.MutableCompositeMetaType at 840}"MutableCompositeMetaType{java.lang.Object}"
| primitiveArray: boolean = false
| cachedHashCode: int = -2147483648
| cachedToString: java.lang.String = {java.lang.String at 833}"ArrayMetaType{type=[Lorg.jboss.metatype.api.values.CompositeValue; dims=1 elementType=MutableCompositeMetaType{java.lang.Object}"
| className: java.lang.String = {java.lang.String at 850}"[Lorg.jboss.metatype.api.values.CompositeValue;"
| description: java.lang.String = {java.lang.String at 851}"1-dimension array of java.lang.Object"
| typeName: java.lang.String = {java.lang.String at 852}"[Lorg.jboss.metatype.api.values.CompositeValue;"
| array: boolean = true
| value: java.lang.Object = {java.lang.Object[2]@830}
| [0] = {org.jboss.metatype.api.values.CompositeValueSupport at 834}"CompositeValueSupport: metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]"
| contents: java.util.SortedMap = {java.util.TreeMap at 839} size = 0
| metaType: org.jboss.metatype.api.types.CompositeMetaType = {org.jboss.metatype.plugins.types.MutableCompositeMetaType at 840}"MutableCompositeMetaType{java.lang.Object}"
| cachedHashCode: int = -2147483648
| [1] = {org.jboss.metatype.api.values.CompositeValueSupport at 834}"CompositeValueSupport: metaType=[MutableCompositeMetaType{java.lang.Object}] items=[]"
| contents: java.util.SortedMap = {java.util.TreeMap at 839} size = 0
| metaType: org.jboss.metatype.api.types.CompositeMetaType = {org.jboss.metatype.plugins.types.MutableCompositeMetaType at 840}"MutableCompositeMetaType{java.lang.Object}"
| cachedHashCode: int = -2147483648
The problem is that Object is recognized as lists/arrays element type instead of Integer (runtime object doesn't carry generics info). Hence elements are Composite types instead of primitive number type.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111219#4111219
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4111219
More information about the jboss-dev-forums
mailing list