code: private Callable createListToObjectBinding(ListProperty<P> listProperty) {
      return () -> {
        if (!isListChange() && listProperty.get() != null && listProperty.get().size() != 0) {
          return listProperty.get().get(0);
        }
        return null;
      };
    }
docs: Creates a function, which handles binding between a ListProperty and an ObjectProperty.
  
  <p>If this change isn't a list change, oldValue and newValue properties will have the single
  element inside of the list, for easier usage.
  
  @param listProperty to be bound to the object property
  @return Callable function, which binds a list to an object property.