docs: @Override
      public void setPropertyValue(PropertyInfo propInfo, Object value) throws Exception {
          String propId = propInfo.getId();
          Object obj = registeredProperties == null ? null : registeredProperties.get(propId);
  
          if (obj == null) {
              obj = new PropertyProxy(propInfo, value);
              registerProperties(obj, propId);
          } else if (obj instanceof PropertyProxy) {
              ((PropertyProxy) obj).setValue(value);
          } else {
              propInfo.setPropertyValue(obj, value, obj == this);
          }
      }