API Review: additional methods for StringExpression
sergey.grinev at oracle.com
Fri Sep 21 10:22:25 PDT 2012
I see, good points. Thanks for explanation.
On 20-Sep-12 10:42, Michael Heinrichs wrote:
> Hi Sergey,
> thanks for your input. I'd rather keep isNotEmpty() for the following reasons:
> 1) Consistency. We already have a whole range of methods, that just negate the outcome of another method, e.g. isNotNull(), notEqual(), even lessThanOrEqual() etc.
> 2) Readability. Consider for example the two expressions below. The first one can easily be misunderstood, especially if you are new to the binding API. The second one is clear IMO.
> 3) Performance. Internally the isNotEmpty() method requires only half of the objects and less method calls when invalidating/calculating the binding.
> On 19.09.2012, at 13:22, Sergey Grinev wrote:
>> Hi, Michael.
>> What do you think about removing isNotEmpty() methods given there is BooleanBinding#not() method?
>> -- Sergey
>> On 17-Sep-12 15:25, Michael Heinrichs wrote:
>>> I propose six new methods in the high level binding API, adding new functionality for ObservableStringValue's. JIRA issue: http://javafx-jira.kenai.com/browse/RT-21487
>>> In StringExpression:
>>> public IntegerBinding length();
>>> public BooleanBinding isEmpty();
>>> public BooleanBinding isNotEmpty();
>>> In Bindings:
>>> public static IntegerBinding length(ObservableStringValue);
>>> public static BooleanBinding isEmpty(ObservableStringValue);
>>> public static BooleanBinding isNotEmpty(ObservableStringValue);
>>> As usual in the binding API, null is treated similar to an empty String, i.e. length() will return 0, isEmpty() will return true, if the value of an ObservableStringValue is null.
>>> For consistency I would also like to add isNotEmpty() methods for collections in the Bindings class:
>>> public static <E> BooleanBinding isNotEmpty(ObservableList<E> op);
>>> public static <K, V> BooleanBinding isNotEmpty(ObservableMap<K, V> op);
>>> public static <E> BooleanBinding isNotEmpty(ObservableSet<E> op);
More information about the openjfx-dev