docs: public void setProperty(final Object object, Object newValue) {
          AccessPermissionChecker.checkAccessPermission(field);
          final Object goalValue = DefaultTypeTransformation.castToType(newValue, field.getType());
  
          if (isFinal()) {
              throw new GroovyRuntimeException("Cannot set the property '" + name + "' because the backing field is final.");
          }
          try {
              field.set(object, goalValue);
          } catch (IllegalAccessException ex) {
              throw new GroovyRuntimeException("Cannot set the property '" + name + "'.", ex);
          }
      }