PageRenderTime 61ms CodeModel.GetById 35ms RepoModel.GetById 0ms app.codeStats 0ms

/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. ---------------
  2. 1. WHAT's NEW
  3. ---------------
  4. A list of changes in recent versions:
  5. 0.2.0: (30-May-2008)
  6. * Switched from JCommon to LibBase. All version information is now contained in
  7. the manifest. The Project-Info implementation reads the version numbers from
  8. the Jar's Manifest or the compiler-output-directory.
  9. * Formulas can now define inline arrays using the OpenFormula syntax.
  10. * CLOB objects are now properly converted into Strings.
  11. * SUBST function now uses a single Stringbuffer instead of creating new
  12. temporary strings all the time resulting in less memory consumption and
  13. a slightly higher performance.
  14. * Error handling is now more consistent. Instead of returning error tokens,
  15. all formula functions now throw exceptions.
  16. Parse errors in the formula-parser now return the location of the error
  17. so that it is easier to find out why a function is rejected by the parser.
  18. * Function now always use BigDecimals when creating new Number-Instances.
  19. This reduces the number of objects created during conversion operations
  20. and improves performance.
  21. * Creating Dates from Numbers is now more performant as we reduce the
  22. reliance on Calendard-Operations.
  23. * [API] MappedFunction and ArrayConverter classes have been removed, as these
  24. classes were never implemented and are no longer needed anyway.
  25. * [BUG] MOD function declared to have 12 parameters, but only requires 2.
  26. * [BUG] ISREF function had no valid metadata due to a typo in a filename.
  27. * [BUG] PRE-361 - ODD and EVEN functions failed to produce correct
  28. results.
  29. * [BUG] REPT function did not handle null-values according to the
  30. specification.
  31. * [BUG] SUBSTITUTE function did not handle empty strings as second
  32. parameter according to the spec.
  33. * [BUG] PRE-363 - Extra comma on "Checks whether" comments and
  34. descriptions removed.
  35. 0.1.18: (21-Feb-2008)
  36. * PRE-257 - Properly escaped double-quotes in a formula were not
  37. translated into proper quotes in the parsed formula-tree
  38. afterwards.
  39. 0.1.17: (04-Feb-2008)
  40. * PRE-231 - Fixed bug where parsing of numerics stopped after first
  41. non-numeric (including a decimal).
  42. 0.1.16: (30-Nov-2007)
  43. * PRE-161 - Fixed a bug with MIN() and MAX() functions not handling strings correctly
  44. * PRE-162 - Fixed a bug with the minus sign operation (-) and percentage operator (%)
  45. returning the wrong type if the wrong type is supplied
  46. 0.1.15: (02-Nov-2007)
  47. * Upgraded to jcommon-1.0.12
  48. 0.1.14: (16-Oct-2007)
  49. * Automatic fixes as reported by IntelliJ-IDEA's inspections
  50. * Updated the copyright header on all java-files
  51. 0.1.13: (12-Oct-2007)
  52. * [BUG] Fixed divide operations that nad no defined scale.
  53. 0.1.12: (24-Sep-2007)
  54. * All releases are now built with JDK 1.4. However, we are still compatible
  55. with JDK 1.2.2 and all releases run and compile under that release.
  56. * [BUG] The boot-class always reconfigured the logging system to use
  57. System.out logging, even if the user configured something else.
  58. * [BUG] The DefaultFunctionRegistry should have cached the loaded
  59. class-objects to avoid resource-contentions in the JDK's classloader.
  60. 0.1.11: (15-Aug-2007)
  61. * Added MIN, MAX, and MOD functions
  62. * [BUG] NumberSequence and Arrays from ranges should now work
  63. * Marked unimplemented methods with UnsupportedOperationException
  64. * Removed use of System.out in favor of JCommon logging
  65. * [BUG] Reworked some functionality that was not Java 1.2 compliant
  66. * Removed some old CVS artifacts
  67. 0.1.10: (30-Jul-2007)
  68. * [BUG] A misplaced instanceof test prevented the distinction between
  69. java.sql.Date and java.sql.Time objects.
  70. * [BUG] A rouge System.out statement was left in the generated formula
  71. parser and caused funny messages.
  72. 0.1.9: (24-Jun-2007)
  73. * [BUG] Percentage Operator did not set the scale correctly
  74. * [BUG] Divide operator did not remove unneccessary trailing zeros.
  75. * [BUG] Fixed a NullPointerException in the Numeric-Operators.
  76. * [BUG] Some operations returned 'null' instead of a NA()-TypeValue-Pair.
  77. * [BUG] The parser did not handle parenthesis correctly resulting in
  78. invalid results in computations.
  79. * Added support for inline arrays to the parser.
  80. * NULL-Values (aka NA()) are now treated like in Excel. Any operation
  81. performed on an NA() value results in NA(). There is no implicit
  82. conversion into ZERO for numeric operations anymore.
  83. 0.1.8: (21-May-2007)
  84. * [BUG] The automatic type conversion was not always working.
  85. * [BUG] The 'greater equal', 'lower equal' and 'not equal'
  86. operators did not work as expected.
  87. * The date-formats used in the automatic conversion can now
  88. be configured using the global configuration.
  89. * New functions added
  90. Date:
  91. - DAY()
  92. - HOUR()
  93. - MONTH()
  94. - WEEKDAY()
  95. - YEAR()
  96. Math:
  97. - EVEN()
  98. - ODD()
  99. - AVERAGE()
  100. Information:
  101. - ISNONTEXTFUNCTION()
  102. - ISEVEN()
  103. - ISODD()
  104. - ISNUMBER()
  105. - ISREF()
  106. 0.1.7: (27-Apr-2007)
  107. * [BUG] Fixed a couple of type-conversion issues when converting from and
  108. to numeric types. Now, if a value is not convertible, a
  109. TypeConversionException will be thrown.
  110. 0.1.6: (01-Apr-2007)
  111. * [BUG] Comparing two untyped (Any-Type) values always failed. The new
  112. implementation now tries to convert these values into Numbers, Dates,
  113. and Strings to compare them. (This is a quick-fix for Bug #1680148;
  114. however, it needs more testing before we can close that bug.)
  115. * New functions added
  116. Date:
  117. - NOW()
  118. - TODAY()
  119. 0.1.5: (07-Mar-2007)
  120. * Exposed some previously private variables to allow proper inspection
  121. of formulas.
  122. 0.1.4: (01-Mar-2007)
  123. * [BUG] The parser did not accept empty parameters so that syntactilly
  124. valid formulas like "IF(;;;)" failed to parse.
  125. * [BUG] The TRIM(..) function was invalid. TRIM has to remove all
  126. leading, trailing and all duplicate inner whitespaces from the give
  127. text.
  128. * New functions added
  129. Text:
  130. - REPLACE(
  131. - SUBSTITUTE(text, old_text, new_text, nth_appearance )
  132. Math:
  133. - ABS(number)
  134. Date:
  135. - DATEDIF(date1,date2,interval)
  136. 0.1.3: (25-Jan-2007)
  137. * [BUG] The power operator was not registered.
  138. * [BUG] The 'minus' prefix operator did not work.
  139. * New functions added
  140. Text:
  141. - LEFT(text[,length=1])
  142. - EXACT(text1,text2)
  143. - FIND(needle,hay[,startIndex])
  144. - LEN(text)
  145. - LOWER(text)
  146. - MID(text,start,length)
  147. - REPT(text,count)
  148. - TEXT(value)
  149. - T(value)
  150. - TRIM(text)
  151. - UPPER(text)
  152. - URLENCODE(text[,encoding])
  153. Information:
  154. - NA
  155. - ISNA(value)
  156. - ISTEXT(value)
  157. - ISLOGICAL(value)
  158. - ISERROR(value)
  159. - CHOOSE(condition,value[,..])
  160. - ISBLANK(value)
  161. 0.1.2: (22-Dec-2006)
  162. * [BUG] The parser failed when being faced with functions that have
  163. no parameters.
  164. * New function NULL allows to return a NULL-reference.
  165. * Added the 'ISBLANK' function from OpenFormula.
  166. 0.1.1: (11-Dec-2006)
  167. * The FormulaContext now is able to signal errors using Exceptions.
  168. The ToDo list has grown a bit after studying the holy books of
  169. Formula-computation. Version 0.2 will see some major internal API
  170. changes.
  171. 0.1.0: (03-Dec-2006)
  172. * Initial version. This version happily deals with plain types and
  173. somehow it even handles arrays without crashing. Code for database
  174. support exists, but is not in a usable state (yet).
  175. I don't even think about OLAP cubes now.
  176. * Functions use a parameter callback now. This way, we avoid to pre-
  177. evaluate all the parameters and therefore optimize the evaluation of
  178. the whole formula.