-
Notifications
You must be signed in to change notification settings - Fork 0
/
op4j-ChangeLog.txt
executable file
·150 lines (127 loc) · 7.71 KB
/
op4j-ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
1.1
===
- Update javaRuntype version to 1.2
- Remove reduce and unfold method references
- Deprecate unfold functions
- Deprecate on(...) methods in Fn
- Deprecate FnReduce and all reduce methods
- Add between to FnObject, FnInteger, FnX functions
- Create shorter versions of Call and Get function methods.
- Add isCalendar function to FnString
- Add isEmpty and reverse to FnString
- Improve conversion from String into Number
- Add characters \u0100 to \u017E and \u01A0 to \u01FF to FnString.asciify()
- New FnString functions: "startsWith", "endsWith" and "substring"
- count() function in FnArray, List or Set receives Object input
- Add functions to FnString to allow determining whether a String is numeric, a valid number, etc.
- Fix conversions into number removing new BigInteger(string)
- Fix module operations in FnLong, FnBigInteger, ...
- Throw exception in conversions from String into Number if the whole input String is not convertable
- Throw exception in conversions using SimpleDateFormat if the whole input String is not convertable
- RemoveAllFalse implementation counter intuitive
- Check whether remainder in FnBigDecimal should be added to other FnX classes
1.0
===
(Same as 1.0-beta3)
1.0-beta3
=========
- New extensions:
* Ognl function hub class now is an extension on its own: op4j-ognl
* New extension for jodatime-related functions: op4j-jodatime
- Documentation
* Added web function reference for every function hub class.
* Added explanations for all FnString functions.
- Structural changes:
* Separated non "on" functions from Fn into a new FnFunc function hub class.
* Updated javaRuntype dependency to version 1.1
* Removed all dependencies except javaRuntype and Apache Commons Lang.
* FnY (FnBigDecimal, FnBigInteger, FnDouble, FnFloat, FnInteger, FnLong and FnShort) return
types replaced in methods returning Function<X, Boolean> with Function<Y, Boolean>
- Functions
* Added "split" and "join" functions to FnString.
* Added "eqValue" and "notEqValue" functions to FnObject, FnNumber and variants for comparing
equality using "compareTo(param) == 0" instead of "equals".
* Added "if" functions (ifTrue, ifFalse, etc) to FnFunc with "else" side.
* Added new "replaceX()" functions to FnString in order to make regular expression-based
replacements on Strings.
* Added new "extractX()" functions to FnString in order to make regular expression-based
substring extractions from Strings.
* Added new "matchX()" functions to FnString in order to make regular expression matching
on Strings.
- Actions
* Removed actions ifNullOrTrue, ifNullOrFalse, ifNotNullAndFalse, ifNotNullAndTrue actions
for conditional execution in order to remove conditional execution complexity.
* Created new "execIfTrue", "execIfFalse", "execIfNull", "execIfNotNull" actions for conditional
execution, both with only "then" and with both "then"+"else" executable functions.
* Added new "toMap" actions to arrays, lists and sets for creating maps by specifying two
functions instead of one (one function for keys, another for values).
* Added a "reverse" action to arrays, lists, maps and sets.
* Added new "zip" methods to arrays, lists and sets in order to be able to zip collections
instead of separate elements like before.
- Resolved issues:
* Fixed compareTo-based functions (lessThan, greaterThan, lessOrEqTo, greaterOrEqTo) when
null or BigDecimal arguments were passed to the function.
* Fixed eq and notEq when null arguments were passed to the function.
1.0-beta2
=========
- Structural changes:
* "Multi" generic operators removed.
* Made all predefined op4j functions extend org.op4j.function.Function and thus provide an
"execute" method without context which allows them to be executed on their own more easily.
* Moved class "Fn" to package org.op4j.functions. Now it will also contain "function-oriented"
functions, and thus act also as a "function hub" class.
* org.op4j.target.ExecCtxImpl is now public and was moved to org.op4j.util.ExecCtxImpl.
* FnMath removed. FnX (X=Integer,Long,Double...) will be used instead.
* FnMathOfX classes renamed to FnX.
* Added aggregation functions in FnInteger,FnLong,etc. for arrays.
* Improved precision management in FnInteger,FnLong,etc. mathematical functions.
* Created org.op4j.util.ValuePair in order to support Binary Operation Functions (e.g. reductions).
* Cast methods "asArrayOf", "asListOf", "asMapOf" and "asSetOf" in array, list, map and set
operators renamed to "of" and created "castToArrayOf", "castToListOf", "castToMapOf" and
"castToSetOf" aliases. "asType" methods renamed to "castTo".
* Renamed "toMapByKeyEval" to "zipKeysBy", and added "zipValuesBy", "zipKeys" and "zipValues".
* Renamed "toMapByAlternateElements" to "couple", and added "coupleAndGroup".
- New functions
* Created "FnReduce" function hub class with functions ready to be used in "reduce" operations.
* Created "unfoldArrayOf", "unfoldList" and "unfoldSet" actions to FnArray, FnList and FnSet for
creating these structures by unfolding (using an iterative function) from a single object.
* Added "negate" function to FnBoolean.
* Added "eq" (equality) and "notEq" (non-equality) function to FnObject, FnNumber,
FnBoolean, FnString, FnCalendar, FnDate.
* Added "eqBy" and "notEqBy" functions to FnObject, FnNumber and FnBoolean, for evaluating equality
based on the execution of a function on the target/s.
* Added "sortBy" functions to FnArray, FnList, FnMap and FnSet.
* Added "lessThan", "lessOrEqTo", "greaterThan" and "greaterOrEqTo" functions to FnObject,
FnNumber and FnString.
* Added "lessThanBy", "lessOrEqToBy", "greaterThanBy" and "greaterOrEqToBy" functions to FnObject
and FnNumber.
* Added "isNull" and "isNotNull" functions to FnObject, FnNumber, FnBoolean, FnString, FnCalendar
and FnDate.
* Added "and", "or" and "not" functions to FnBoolean and Fn.
* Added "chain" function to Fn.
* Added "count" function to FnArray, FnList, FnMap and FnSet
* Added "contains", "notContains, "containsAll", "containsAny" and "containsNone" functions to
FnArray, FnList and FnSet.
* Added "containsKey", "notContainsKey", "containsAllKeys", "containsAnyKeys" and
"containsNoneKeys" functions to FnMap.
* Added "by" function to Fn and FnBoolean, for allowing the execution of any function not on the
target object itself, but on the result of applying a function ("by" function) on it.
* Added "isNullBy" and "isNotNullBy" to FnBoolean and FnObject
* Added "ifTrue", "ifFalse", "ifNull", "ifNotNull", "ifNullOrTrue", "ifNullOrFalse",
"ifNotNullAndTrue" and "ifNotNulAndFalse" functions to Fn.
* Added "whileTrue" and "whileFalse" functions to Fn for executing a function on a target object
while a specified condition continues to be true.
- New actions
* Added "onArrayFor", "onListFor" and "onSetFor" methods to Op in order to build structures
from their elements.
* Added "onMapFor" to Op returning a new class of map operator: "Building map operator". This allows
the building of maps with successive calls to the "and" method after the "onMapFor" call. This
"and" method will dissapear after any other method is called.
* Added utility initializer actions to Fn like "Fn.onString()" to avoid always having to specify the
type as "Fn.on(Types.STRING)".
* Created "reduce" actions for arrays, lists, and sets.
* Created "unfoldArrayOf", "unfoldList" and "unfoldSet" actions for generic operators.
* Added "sortBy" actions to array, list, map and set operators.
1.0-beta1
=========
- First beta release of op4j.