ofbiz-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Foxworthy (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (OFBIZ-4427) Possible runtime errors with UtilValidate.isEmpty(Object) should be rather caught during compilation
Date Wed, 30 Nov 2016 22:56:59 GMT

    [ https://issues.apache.org/jira/browse/OFBIZ-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15707440#comment-15707440
] 

Paul Foxworthy edited comment on OFBIZ-4427 at 11/30/16 10:56 PM:
------------------------------------------------------------------

Jacques says in the description: "Scripting languages should use a facade class that provides
methods for working with generic Objects or providing default behaviors"

Are you suggesting that UtilValidate.isEmpty( Object ) should be available to scripting languages,
but not to Java?

The whole point of this issue is to enable isEmpty for types where emptiness is relevant ,
and not for other types where isEmpty is misleading and we should just use == null. I'd argue
that if "emptiness" does not make sense, then isEmpty should not work, even from a scripting
language.

In Groovy you can retrofit an interface onto a class using metaclasses without rewriting the
code for that class. So we can add the org.apache.ofbiz.base.lang.IsEmpty interface to everything
we need, and still deprecate it for Objects in general.


was (Author: paul_foxworthy):
Jacques says in the description: "Scripting languages should use a facade class that provides
methods for working with generic Objects or providing default behaviors"

Are you suggesting that UtilValidate.isEmpty( Object ) should be available to scripting languages,
but not to Java?

The whole point of this issue is to enable isEmpty for types where emptiness is relevant ,
and not for other types where isEmpty is misleading and we should just use == null. I'd argue
that is "emptiness" does not make sense, the isEmpty should not work, even from a scripting
language.

In Groovy you can retrofit an interface onto a class using metaclasses without rewriting the
code for that class. So we can add the org.apache.ofbiz.base.lang.IsEmpty interface to everything
we need, and still deprecate it for Objects in general.

> Possible runtime errors with UtilValidate.isEmpty(Object) should be rather caught during
compilation
> ----------------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-4427
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4427
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: Jacques Le Roux
>            Assignee: Jacques Le Roux
>            Priority: Minor
>              Labels: UtilValidate.isEmpty
>         Attachments: OFBIZ-4427.patch, OFBIZ-4427_isEmpty.patch
>
>
> Hence we need to remove the UtilValidate.isEmpty(Object) method and provide methods that
accept explicit types.  
> Scripting languages should use a facade class that provides methods for working with
generic Objects or providing default behaviors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message