"Fossies" - the Fresh Open Source Software Archive

Member "spring-framework-6.0.4/spring-expression/readme.txt" (11 Jan 2023, 3045 Bytes) of package /linux/misc/spring-framework-6.0.4.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "readme.txt": 5.3.22_vs_5.3.23.

    1 List of outstanding things to think about - turn into tickets once distilled to a core set of issues
    2 
    3 High Importance
    4 
    5 - In the resolver/executor model we cache executors.  They are currently recorded in the AST and so if the user chooses to evaluate an expression
    6 in a different context then the stored executor may be incorrect.  It may harmless 'fail' which would cause us to retrieve a new one, but 
    7 can it do anything malicious? In which case we either need to forget them when the context changes or store them elsewhere.  Should caching be
    8 something that can be switched on/off by the context? (shouldCacheExecutors() on the interface?)
    9 - Expression serialization needs supporting
   10 - expression basic interface and common package.  Should LiteralExpression be settable? should getExpressionString return quoted value?
   11 
   12 Low Importance
   13 
   14 - For the ternary operator, should isWritable() return true/false depending on evaluating the condition and check isWritable() of whichever branch it
   15 would have taken?  At the moment ternary expressions are just considered NOT writable.
   16 - Enhance type locator interface with direct support for register/unregister imports and ability to set class loader?
   17 - Should some of the common errors (like SpelMessages.TYPE_NOT_FOUND) be promoted to top level exceptions?
   18 - Expression comparison - is it necessary?
   19 
   20 Syntax
   21 
   22 - should the 'is' operator change to 'instanceof' ?
   23 - in this expression we hit the problem of not being able to write chars, since '' always means string:
   24   evaluate("new java.lang.String('hello').charAt(2).equals('l'.charAt(0))", true, Boolean.class);
   25   So 'l'.charAt(0) was required - wonder if we can build in a converter for a single length string to char?
   26   Can't do that as equals take Object and so we don't know to do a cast in order to pass a char into equals
   27   We certainly cannot do a cast (unless casts are added to the syntax).  See MethodInvocationTest.testStringClass()
   28 - MATCHES is now the thing that takes a java regex.  What does 'like' do? right now it is the SQL LIKE that supports
   29   wildcards % and _.  It has a poor implementation but I need to know whether to keep it in the language before
   30   fixing that.
   31 - Need to agree on a standard date format for 'default' processing of dates.  Currently it is:
   32   formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", Locale.UK);
   33   // this is something of this format: "Wed, 4 Jul 2001 12:08:56 GMT"
   34   // https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
   35 - See LiteralTests for Date (4,5,6) - should date take an expression rather than be hardcoded in the grammar
   36   to take 2 strings only?
   37 - when doing arithmetic, eg. 8.4 / 4  and the user asks for an Integer return type - do we silently coerce or
   38   say we cannot as it won't fit into an int? (see OperatorTests.testMathOperatorDivide04)
   39 - Is $index within projection/selection useful or just cute?
   40 - All reals are represented as Doubles (so 1.25f is held internally as a double, can be converted to float when required though) - is that ok?