code: public PropertySetting propertySetting(PropertySetting setter) {
      PropertySetting previous = this.setter;
      this.setter = Objects.requireNonNull(setter);
      return previous;
    }
docs: Change how property setting is done. It's polite to set the value back once done processing.
  @param setter The new {@link PropertySetting} to use.
  @return The previous {@link PropertySetting} that has just been replaced.