MASON-INTEREST-L Archives

March 2016

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Proportional Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Christian Meyer <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Tue, 15 Mar 2016 16:41:52 +0100
Content-Type:
text/plain
Parts/Attachments:
text/plain (50 lines)
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);
}

ATOM RSS1 RSS2