/libformula-1.1.3/ChangeLog.txt
Plain Text | 248 lines | 178 code | 70 blank | 0 comment | 0 complexity | 99661003c4ae73d798ea209814dca2ea MD5 | raw file
Possible License(s): LGPL-2.1
- ---------------
- 1. WHAT's NEW
- ---------------
- A list of changes in recent versions:
- 0.2.0: (30-May-2008)
- * Switched from JCommon to LibBase. All version information is now contained in
- the manifest. The Project-Info implementation reads the version numbers from
- the Jar's Manifest or the compiler-output-directory.
- * Formulas can now define inline arrays using the OpenFormula syntax.
- * CLOB objects are now properly converted into Strings.
- * SUBST function now uses a single Stringbuffer instead of creating new
- temporary strings all the time resulting in less memory consumption and
- a slightly higher performance.
- * Error handling is now more consistent. Instead of returning error tokens,
- all formula functions now throw exceptions.
- Parse errors in the formula-parser now return the location of the error
- so that it is easier to find out why a function is rejected by the parser.
- * Function now always use BigDecimals when creating new Number-Instances.
- This reduces the number of objects created during conversion operations
- and improves performance.
-
- * Creating Dates from Numbers is now more performant as we reduce the
- reliance on Calendard-Operations.
- * [API] MappedFunction and ArrayConverter classes have been removed, as these
- classes were never implemented and are no longer needed anyway.
- * [BUG] MOD function declared to have 12 parameters, but only requires 2.
- * [BUG] ISREF function had no valid metadata due to a typo in a filename.
-
- * [BUG] PRE-361 - ODD and EVEN functions failed to produce correct
- results.
- * [BUG] REPT function did not handle null-values according to the
- specification.
- * [BUG] SUBSTITUTE function did not handle empty strings as second
- parameter according to the spec.
- * [BUG] PRE-363 - Extra comma on "Checks whether" comments and
- descriptions removed.
- 0.1.18: (21-Feb-2008)
- * PRE-257 - Properly escaped double-quotes in a formula were not
- translated into proper quotes in the parsed formula-tree
- afterwards.
- 0.1.17: (04-Feb-2008)
- * PRE-231 - Fixed bug where parsing of numerics stopped after first
- non-numeric (including a decimal).
- 0.1.16: (30-Nov-2007)
- * PRE-161 - Fixed a bug with MIN() and MAX() functions not handling strings correctly
- * PRE-162 - Fixed a bug with the minus sign operation (-) and percentage operator (%)
- returning the wrong type if the wrong type is supplied
- 0.1.15: (02-Nov-2007)
- * Upgraded to jcommon-1.0.12
- 0.1.14: (16-Oct-2007)
- * Automatic fixes as reported by IntelliJ-IDEA's inspections
-
- * Updated the copyright header on all java-files
-
- 0.1.13: (12-Oct-2007)
- * [BUG] Fixed divide operations that nad no defined scale.
- 0.1.12: (24-Sep-2007)
- * All releases are now built with JDK 1.4. However, we are still compatible
- with JDK 1.2.2 and all releases run and compile under that release.
-
- * [BUG] The boot-class always reconfigured the logging system to use
- System.out logging, even if the user configured something else.
- * [BUG] The DefaultFunctionRegistry should have cached the loaded
- class-objects to avoid resource-contentions in the JDK's classloader.
- 0.1.11: (15-Aug-2007)
- * Added MIN, MAX, and MOD functions
-
- * [BUG] NumberSequence and Arrays from ranges should now work
-
- * Marked unimplemented methods with UnsupportedOperationException
-
- * Removed use of System.out in favor of JCommon logging
-
- * [BUG] Reworked some functionality that was not Java 1.2 compliant
-
- * Removed some old CVS artifacts
- 0.1.10: (30-Jul-2007)
- * [BUG] A misplaced instanceof test prevented the distinction between
- java.sql.Date and java.sql.Time objects.
-
- * [BUG] A rouge System.out statement was left in the generated formula
- parser and caused funny messages.
- 0.1.9: (24-Jun-2007)
- * [BUG] Percentage Operator did not set the scale correctly
- * [BUG] Divide operator did not remove unneccessary trailing zeros.
- * [BUG] Fixed a NullPointerException in the Numeric-Operators.
- * [BUG] Some operations returned 'null' instead of a NA()-TypeValue-Pair.
- * [BUG] The parser did not handle parenthesis correctly resulting in
- invalid results in computations.
- * Added support for inline arrays to the parser.
- * NULL-Values (aka NA()) are now treated like in Excel. Any operation
- performed on an NA() value results in NA(). There is no implicit
- conversion into ZERO for numeric operations anymore.
- 0.1.8: (21-May-2007)
- * [BUG] The automatic type conversion was not always working.
-
- * [BUG] The 'greater equal', 'lower equal' and 'not equal'
- operators did not work as expected.
-
- * The date-formats used in the automatic conversion can now
- be configured using the global configuration.
- * New functions added
- Date:
- - DAY()
- - HOUR()
- - MONTH()
- - WEEKDAY()
- - YEAR()
-
- Math:
- - EVEN()
- - ODD()
- - AVERAGE()
-
- Information:
- - ISNONTEXTFUNCTION()
- - ISEVEN()
- - ISODD()
- - ISNUMBER()
- - ISREF()
- 0.1.7: (27-Apr-2007)
- * [BUG] Fixed a couple of type-conversion issues when converting from and
- to numeric types. Now, if a value is not convertible, a
- TypeConversionException will be thrown.
- 0.1.6: (01-Apr-2007)
- * [BUG] Comparing two untyped (Any-Type) values always failed. The new
- implementation now tries to convert these values into Numbers, Dates,
- and Strings to compare them. (This is a quick-fix for Bug #1680148;
- however, it needs more testing before we can close that bug.)
- * New functions added
- Date:
- - NOW()
- - TODAY()
- 0.1.5: (07-Mar-2007)
- * Exposed some previously private variables to allow proper inspection
- of formulas.
- 0.1.4: (01-Mar-2007)
- * [BUG] The parser did not accept empty parameters so that syntactilly
- valid formulas like "IF(;;;)" failed to parse.
- * [BUG] The TRIM(..) function was invalid. TRIM has to remove all
- leading, trailing and all duplicate inner whitespaces from the give
- text.
- * New functions added
- Text:
- - REPLACE(
- - SUBSTITUTE(text, old_text, new_text, nth_appearance )
- Math:
- - ABS(number)
- Date:
- - DATEDIF(date1,date2,interval)
- 0.1.3: (25-Jan-2007)
- * [BUG] The power operator was not registered.
- * [BUG] The 'minus' prefix operator did not work.
- * New functions added
- Text:
- - LEFT(text[,length=1])
- - EXACT(text1,text2)
- - FIND(needle,hay[,startIndex])
- - LEN(text)
- - LOWER(text)
- - MID(text,start,length)
- - REPT(text,count)
- - TEXT(value)
- - T(value)
- - TRIM(text)
- - UPPER(text)
- - URLENCODE(text[,encoding])
- Information:
- - NA
- - ISNA(value)
- - ISTEXT(value)
- - ISLOGICAL(value)
- - ISERROR(value)
- - CHOOSE(condition,value[,..])
- - ISBLANK(value)
- 0.1.2: (22-Dec-2006)
- * [BUG] The parser failed when being faced with functions that have
- no parameters.
- * New function NULL allows to return a NULL-reference.
- * Added the 'ISBLANK' function from OpenFormula.
- 0.1.1: (11-Dec-2006)
- * The FormulaContext now is able to signal errors using Exceptions.
- The ToDo list has grown a bit after studying the holy books of
- Formula-computation. Version 0.2 will see some major internal API
- changes.
- 0.1.0: (03-Dec-2006)
- * Initial version. This version happily deals with plain types and
- somehow it even handles arrays without crashing. Code for database
- support exists, but is not in a usable state (yet).
- I don't even think about OLAP cubes now.
- * Functions use a parameter callback now. This way, we avoid to pre-
- evaluate all the parameters and therefore optimize the evaluation of
- the whole formula.