{
throw new PortletInvokerException("Cannot set properties on portlet '" + portletContext.getId()
+ "' because there is no such portlet.");
}
PropertyList propertyList = WSRPTypeFactory.createPropertyList();
int changesNumber = changes.length;
List<Property> updates = new ArrayList<Property>(changesNumber);
List<ResetProperty> resets = new ArrayList<ResetProperty>(changesNumber);
for (int i = 0; i < changesNumber; i++)
{
PropertyChange change = changes[i];
switch (change.getType())
{
case PropertyChange.PREF_RESET:
resets.add(WSRPTypeFactory.createResetProperty(change.getKey()));
break;
case PropertyChange.PREF_UPDATE:
// todo: deal with language more appropriately
updates.add(WSRPTypeFactory.createProperty(change.getKey(),
WSRPConstants.DEFAULT_LOCALE, change.getValue().get(0)));
break;
default:
throw new IllegalArgumentException("Unexpected property change type: " + change.getType());
}
}
propertyList.getProperties().addAll(updates);
propertyList.getResetProperties().addAll(resets);
try
{
Holder<String> handle = new Holder<String>();
Holder<byte[]> portletState = new Holder<byte[]>();