Commit Graph

284 Commits

Author SHA1 Message Date
Juergen Hoeller
c515de138a Correct import order 2019-02-15 17:19:21 +01:00
Juergen Hoeller
6db75956b9 Merge branch '5.1.x' 2019-02-15 17:16:28 +01:00
Juergen Hoeller
e307dd58db Polishing 2019-02-15 17:06:11 +01:00
stsypanov
5e29ea30a3 Use StringJoiner where possible to simplify String joining 2019-02-15 14:55:35 +01:00
Juergen Hoeller
9895e44d73 Polishing 2019-02-05 16:03:24 +01:00
Juergen Hoeller
59a9c8e004 MethodReference.MethodValueRef.setValue throws SpelEvaluationException
Closes gh-22336
2019-02-05 00:43:56 +01:00
Juergen Hoeller
a27a6470f7 Polishing 2019-02-05 00:10:22 +01:00
stsypanov
248d3f8e8b Use AtomicInteger instead of unsafe increment on volatile fields 2019-02-04 23:22:20 +01:00
Juergen Hoeller
7a77e83e10 SpelNodeImpl manages start/end position in separate integer values
Fixes gh-22157
2019-01-28 22:50:56 +01:00
Juergen Hoeller
b2756f5bd2 Relaxed position assertion (for overflows in large inline maps)
Issue: SPR-17605
2018-12-25 13:22:00 +01:00
Juergen Hoeller
db63f7dd4a StandardEvaluationContext.setVariable leniently ignores null name
Issue: SPR-17565
2018-12-05 14:13:24 +01:00
Juergen Hoeller
59fa647e2d StandardEvaluationContext supports concurrent variable modification
Issue: SPR-17448
2018-11-05 12:26:35 +01:00
Juergen Hoeller
34663300a6 Avoid regex pattern matching for simple String replacement steps
Issue: SPR-17279
2018-09-17 14:22:19 +02:00
Andy Clement
f87a37fd0d Fix SpEL compilation for non trivial elvis operand
Issue: SPR-17214
2018-09-05 09:41:13 -07:00
Juergen Hoeller
95a56cd28d Polishing 2018-08-31 12:41:40 +02:00
Juergen Hoeller
51cee658d5 SpelExpression consistently exposes EvaluationContext to compiled AST
Operator includes explicit support for Boolean comparisons now.

Issue: SPR-17229
2018-08-31 12:41:22 +02:00
stsypanov
457d586859 SPR-17074 pass argument of addAll/putAll into constructor 2018-07-30 21:27:55 +02:00
Juergen Hoeller
c4df335a1d ReflectiveMethodExecutor invokes interface method if possible
Issue: SPR-16845
2018-07-19 16:35:59 +02:00
Juergen Hoeller
9c08a482d1 Prefer ArrayList/ArrayDeque over LinkedList for multi-element holders
LinkedList remains in place where a List is likely to remain empty or single-element (in order to avoid unused capacity).

Issue: SPR-17037
2018-07-18 22:17:42 +02:00
Juergen Hoeller
641039d85d Polishing 2018-06-29 22:36:08 +02:00
Juergen Hoeller
8ad5299f4a Polishing 2018-06-28 17:12:29 +02:00
Phillip Webb
5cedd0d5d4 Consistently use tabs rather than spaces
Update code that has accidentally used spaces instead of tabs.
Also remove all trailing whitespace.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
be85bd8e09 Don't use == when comparing strings
Fix a few places where `==` was accidentally used to compare
strings.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
13729364ab Consistently use only one statement per line
Ensure that only one statement is used per line.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
0b53c1096a Always use 'this.' when accessing fields
Ensure that `this.` is used consistently when accessing class
fields.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
eeebd51f57 Use consistent class design
Update all classes so that inner classes are always last. Also
ensure that utility classes are always final and have a private
constructor and make exceptions final whenever possible.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
866e9d702e Use consistent block style
Update all code to use a consistent block style.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e0480f75ac Fix javadoc checkstyle issues
Fix checkstyle violations for javadoc.

Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Juergen Hoeller
4aafbe5a84 Remove outdated javadoc references to SpEL lambda functions
Issue: SPR-16930

(cherry picked from commit 78d3164)
2018-06-11 19:16:14 +02:00
Juergen Hoeller
e2ccd55d14 ReflectivePropertyAccessor uses computeIfAbsent for cache computation
Issue: SPR-16882
2018-06-10 23:56:32 +02:00
Juergen Hoeller
bfcc1a1f6a ReflectivePropertyAccessor caches sorted methods per class
Issue: SPR-16882
2018-06-06 21:25:53 +02:00
Juergen Hoeller
c9f488363d Fine-tuned assertions and related polishing 2018-05-05 14:39:43 +02:00
Stéphane GRILLON
c5278aa359 Remove unnecessary boxing
Closes gh-1817
2018-05-03 10:48:50 +02:00
Juergen Hoeller
ac1e2a4598 Consistent SpelEvaluationException messages in findAccessorForMethod
Includes abstract declarations for FormatHelper and ReflectionHelper.

Issue: SPR-16762
2018-05-01 23:48:26 +02:00
Juergen Hoeller
d4a55a257b OperatorMatches flags misguided evaluation attempts as FLAWED_PATTERN
Issue: SPR-16731
2018-04-17 11:10:15 +02:00
Juergen Hoeller
d553ddc5b3 Nullability refinements (based on IntelliJ IDEA 2018.1 introspection)
Issue: SPR-15756
2018-03-29 23:50:17 +02:00
igor-suhorukov
93abe0e94b All branches in a conditional structure should not have exactly the same implementation 2018-03-29 23:33:50 +02:00
Juergen Hoeller
08dad4e3ac Consistent references to primitive types (in alphabetical order) 2018-03-29 16:05:00 +02:00
igor-suhorukov
8d2f64fe2d Nested "enum"s should not be declared static
Closes gh-1759
2018-03-29 09:12:03 +02:00
Juergen Hoeller
c072c6deb5 Refined javadoc for SimpleEvaluationContext and its builder features
Issue: SPR-16588
2018-03-27 17:07:03 +02:00
Juergen Hoeller
c60cefa331 SimpleEvaluationContext.Builder withRootObject/withTypedRootObject
Issue: SPR-16588
2018-03-27 00:22:54 +02:00
Juergen Hoeller
9128226da4 SimpleEvaluationContext.Builder withMethodResolvers/withInstanceMethods
Includes DataBindingMethodResolver as ReflectiveMethodResolver subclass.

Issue: SPR-16588
2018-03-24 16:30:37 +01:00
Juergen Hoeller
38dcd179d5 Guidance of which PropertyAccessors to use with SimpleEvaluationContext
Issue: SPR-16588
2018-03-23 17:29:21 +01:00
Juergen Hoeller
51c57d77d9 SimpleEvaluationContext with dedicated factory methods for common cases
Aligned with DataBindingPropertyAccessor and shown in ref doc examples.

Issue: SPR-16588
2018-03-22 18:09:27 +01:00
Rossen Stoyanchev
19293b9847 SimpleEvaluationContext builder
Issue: SPR-16588
2018-03-21 22:36:08 -04:00
Juergen Hoeller
b5511645b8 DataBindingPropertyAccessor with factory methods (forReadOnlyAccess etc)
Includes configurable write support at ReflectivePropertyAccessor level.

Issue: SPR-16588
2018-03-22 00:03:06 +01:00
Juergen Hoeller
1fd5935afa SimplePropertyAccessor with configurable write support
Issue: SPR-16588
2018-03-21 12:06:40 +01:00
Rossen Stoyanchev
cb8c6e3251 Add SimpleEvaluationContext
Issue: SPR-16588
2018-03-14 15:53:19 -04:00
Juergen Hoeller
3988dd9ebb Polishing 2018-03-14 17:24:58 +01:00
Andy Clement
1db7e02de3 Modify SpEL code gen to take account of null safe refs
With this change the code generation for method and property
references is modified to include branching logic in the
case of null safe dereferencing (?.). This is complicated
by the possible usage of primitives on the left hand side
of the dereference. To cope with this case primitives are
promoted to boxed types when this situation occurs enabling
null to be passed as a possible result.

Issue: SPR-16489
2018-03-12 15:58:59 -07:00