} else if (kid instanceof UISelectItems && null != context) { Object value = ((UISelectItems) kid).getValue(); if (value instanceof SelectItem) { list.add(value); } else if (value instanceof SelectItem[]) { SelectItem items[] = (SelectItem[]) value; for (int i = 0; i < items.length; i++) { list.add(items[i]); } } else if (value instanceof Collection) { Iterator elements = ((Collection) value).iterator(); while (elements.hasNext()) { list.add(elements.next()); } } else if (value instanceof Map) { Iterator keys = ((Map) value).keySet().iterator(); while (keys.hasNext()) { Object key = keys.next(); if (key == null) { continue; } Object val = ((Map) value).get(key); if (val == null) { continue; } list.add(new SelectItem(val.toString(), key.toString(), null)); } } else { throw new IllegalArgumentException(Util.getExceptionMessageString( Util.CONVERSION_ERROR_MESSAGE_ID)); } }