default ObjectProperty<ImplementAs> nullableImplementationProperty() {
        final ImplementAs initial = HasNullable.super.getNullableImplementation();
        final StringProperty implName = stringPropertyOf(HasNullableUtil.NULLABLE_IMPLEMENTATION, initial::name);
        final ObjectProperty<ImplementAs> property = new SimpleObjectProperty<>(initial);
        
        Bindings.bindBidirectional(implName, property, new StringConverter<ImplementAs>() {
            @Override
            public String toString(ImplementAs object) {
                if (object == null) return null;
                else return object.name();
            }

            @Override
            public ImplementAs fromString(String string) {
                if (string == null) return null;
                else return ImplementAs.valueOf(string);
            }
        });
        
        return property;
    }
Returns a property of the current implementation used by this column.
<p>
<em>Warning!</em> The returned object can be both read and written to,
but note that it may be garbage collected unless the caller saves a
reference to it somewhere.

@return  a property of the nullable implementation.
tool-parent/tool-config/src/main/java/com/speedment/tool/config/trait/HasNullableProperty.java