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(),
WSRPUtils.toString(Locale.getDefault()), change.getValue().get(0)));
break;
default:
throw new IllegalArgumentException("Unexpected property change type: " + change.getType());
}
}
propertyList.getProperties().addAll(updates);
propertyList.getResetProperties().addAll(resets);