code: public Object setObjectValue(StringToObjectConverter pConverter, Object pInner, String pIndex, Object  pValue)
              throws IllegalAccessException, InvocationTargetException {
          List list = (List) pInner;
          int idx;
          try {
              idx = Integer.parseInt(pIndex);
          } catch (NumberFormatException exp) {
              throw new IllegalArgumentException("Non-numeric index for accessing collection " + pInner +
                      ". (index = " + pIndex + ", value to set = " +  pValue + ")",exp);
          }
  
          // For a collection, we can infer the type within the collection. We are trying to fetch
          // the old value, and if set, we use its type. Otherwise, we simply use string as value.
          Object oldValue = list.get(idx);
          Object value =
                  oldValue != null ?
                          pConverter.prepareValue(oldValue.getClass().getName(), pValue) :
                          pValue;
          list.set(idx,value);
          return oldValue;
      }
docs: Set a value within a list
  
  @param pConverter the global converter in order to be able do dispatch for
  serializing inner data types
  @param pInner object on which to set the value (which must be a {@link List})
  @param pIndex index (as string) where to set the value within the list
  @param pValue the new value to set
  
  @return the old value at this index
  @throws IllegalAccessException
  @throws InvocationTargetException