flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Harui (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLEX-35075) E4X filters need to be smarter
Date Tue, 12 Apr 2016 18:31:25 GMT

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

Alex Harui commented on FLEX-35075:
-----------------------------------

Added simple fix in a56951bbe452a761fe96391f121fe70d6aecf6c3
Walking further up the parents to see if you are in an e4x filter would be too costly.
We really need to think about passing context around.

> E4X filters need to be smarter
> ------------------------------
>
>                 Key: FLEX-35075
>                 URL: https://issues.apache.org/jira/browse/FLEX-35075
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: FalconJX
>    Affects Versions: Apache FalconJX 0.6.0
>            Reporter: Harbs
>
> The following expression:
> {code:actionscript}
> xmlSource.Set1.child.(year == "2015");
> {code}
> compiles into:
> {code:javascript}
> xmlSource.child('Set1').child('child').filter(function(node){return (node.year == "2015")});
> {code}
> This is all fine except for the filter expression.
> node.year means nothing in Javascript.
> I'm not sure the best way to compile this. The following will work, but it will probably
get tricky covering all cases:
> {code:javascript}
> xmlSource.child('Set1').child('child').filter(function(node){return (node.child("year").toString()
== "2015")});
> {code}
> What might make more sense might be to add some helper functions like:
> XML.isEqual(randomObject); (mapped to ==)
> XML.isNotEqual(randomObject); (mapped to !=)
> XML.greaterThan(randomObject); (mapped to >)
> XML.lessThan(randomObject); (mapped to <)
> XML.greaterThanOrEqualTo(randomObject);(mapped to >=)
> XML.lessThanOrEqualTo(randomObject);(mapped to <=)
> And the code will figure out the best way to handle these comparisons based on the type
at runtime.
> In that case, this would compile like this:
> xmlSource.child('Set1').child('child').filter(function(node){return (node.child("year").isEqualTo("2015"))});
> Thoughts?



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

Mime
View raw message