code: private Object setObjectValue(Object pInner, String pAttribute, Object pValue)
              throws IllegalAccessException, InvocationTargetException {
  
          // Call various handlers depending on the type of the inner object, as is extract Object
  
          Class clazz = pInner.getClass();
          if (clazz.isArray()) {
              return arrayExtractor.setObjectValue(stringToObjectConverter,pInner,pAttribute,pValue);
          }
          Extractor handler = getExtractor(clazz);
  
          if (handler != null) {
              return handler.setObjectValue(stringToObjectConverter,pInner,pAttribute,pValue);
          } else {
              throw new IllegalStateException(
                      "Internal error: No handler found for class " + clazz + " for setting object value." +
                      " (object: " + pInner + ", attribute: " + pAttribute + ", value: " + pValue + ")");
          }
      }
docs: Set an value of an inner object
  
  @param pInner the inner object
  @param pAttribute the attribute to set
  @param pValue the value to set
  @return the old value
  @throws IllegalAccessException if the reflection code fails during setting of the value
  @throws InvocationTargetException reflection error