flex-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Harbs (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLEX-35075) E4X filters need to be smarter
Date Mon, 11 Apr 2016 22:46:25 GMT
Harbs created FLEX-35075:
----------------------------

             Summary: 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