API Review: additional methods for StringExpression
Richard Bair
richard.bair at oracle.com
Fri Sep 21 11:45:50 PDT 2012
Michael,
Sounds good to me, +1.
On Sep 19, 2012, at 11:42 PM, 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.
> isEmpty(list1).not().and(isEmpty(list2))
> isNotEmpty(list1).and(isEmpty(list2).
> 3) Performance. Internally the isNotEmpty() method requires only half of the objects and less method calls when invalidating/calculating the binding.
>
> Cheers,
> Michael
>
>
>
> 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:
>>> Hi,
>>>
>>> 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);
>>>
>>> Thanks,
>>> Michael
>>
>
More information about the openjfx-dev
mailing list