code: public static void callSetter(Object target, PropertyDescriptor prop, Object value) {
  
          Method setter = prop.getWriteMethod();
  
          if (setter == null) {
              return;
          }
  
          try {
  
              setter.invoke(target, new Object[]{value});
          } catch (IllegalArgumentException e) {
              throw new RuntimeException(
                      "Cannot set " + prop.getName() + ": " + e.getMessage(), e);
  
          } catch (IllegalAccessException e) {
              throw new RuntimeException(
                      "Cannot set " + prop.getName() + ": " + e.getMessage(), e);
  
          } catch (InvocationTargetException e) {
              throw new RuntimeException(
                      "Cannot set " + prop.getName() + ": " + e.getMessage(), e);
          }
      }
docs: Invokes Property Descriptor Setter and sets value @value into it.
  
  @param target Object Getter of which would be executed
  @param prop   Property Descriptor which would be used to invoke Getter
  @param value  Value which should be set into @target