Subject: | |
From: | |
Reply To: | |
Date: | Tue, 15 Mar 2016 14:08:25 -0400 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
Thanks, Christian. I have modified the code to accomodate boxing more or less like you described. Let me know if it seems to work.
Sean
On Mar 15, 2016, at 11:41 AM, Christian Meyer <[log in to unmask]> wrote:
> Hi,
>
> There is a type issue in CollectionProperties which prevents Map objects from being edited. Making sure the types become unboxed fixed the issue for me.
>
> Best regards,
> Christian
>
> public Class<?> getType(int index) {
> if (index < 0 || index > numProperties()) {
> return null;
> }
> if (indexed != null) {
> Class<?> type = indexed.componentType();
> if (type != null) {
> return type;
> }
> }
> Object obj = getValue(index);
> if (obj == null) {
> return Object.class;
> }
> // CHANGE: must be unboxed to get accepted by setValue(int, String)
> return getTypeConversion(obj.getClass());
> }
>
> public boolean isReadWrite(int index) {
> if (index < 0 || index > numProperties()) {
> return false;
> }
>
> if (collection != null) {
> // collections are not modifiable -- they can't be referenced
> return false;
> }
>
> // CHANGE: no need to unbox here, already done
> Class<?> type = getType(index);
> Object obj = getValue(index);
> if (obj != null) {
> // CHANGE: must be unboxed to be assignable to type
> Class<?> objType = getTypeConversion(obj.getClass());
> if (!type.isAssignableFrom(objType)) {
> return false;
> }
> }
> return !isComposite(index);
> }
|
|
|