finish core OO 4GL support
#1 Updated by Greg Shah almost 4 years ago
This task is to aggregate the work to finish the OO 4GL implementation. The majority of the work for OO 4GL was already done in #3751. This is just the list of the last remaining work.
- #4349 enum support
- #4347 block option STOP-AFTER (needs runtime)
- #4348 extent method return for ObjectOps.invoke (and LegacyClass versions). We may have issues with extent return type (but I'm not sure).
- #4374 parameter validation for Progress.Lang.Class:invoke and new
- #4353 progress.lang.ParameterList:setParameter - argument validation
- #4352 apperror vs syserror - these weren't tested comprehensively, the support is pretty good, but when combined with ROUTINE-LEVEL or BLOCK-LEVEL statements, we may have missing issues (as I recall, we need to convert ERROR condition to SysError class).
- #4350 method overload when they differ by a temp-table, dataset, buffer or object or extent or parameter modes - this is both conversion and runtime (to i.e. find the correct API in case of a dynamic call).
- #5761 replace ErrorManager.displayError with recordOrThrowError and fix recordOrShowError to morph into a recordOrThrowError in certain cases
- #5113 implement c'tor overloading for cases where type erasure is an issue
- #4351 the dual resource behavior (static and instance); we have define stream support, but we need to add support for the other resources which behave like this (frames, query, etc)
- #4354 GET-CLASS built-in function
- #4355 catch block variable definitions
- #4363 assigning a dynamic extent var to a OO method call as rvalue added
- #4602 fixes for OO 4GL and structured error handling added
- #4658 OO serialization support
- #5146 record additional legacy class and method data in annotations
- #5651 conditions in a finally block
- #5691 deviation in error generation for invalid method/property chaining
- #5729 implement polymorphic reflection support for properties and variables
Deferred Work (not to be completed now)
- #4629 implement fully compatible 4GL collections (backed by protected temp-tables)
- #5011 unimplemented OO 4GL quirks and bugs
- #5745 New access modes: package-private, package-protected
- #6161 add support for DYNAMIC-PROPERTY built-in function and DYNAMIC-PROPERTY language statement
- #6292 nested catch blocks
- #6300 class definitions with USE-WIDGET-POOL
- #6410 more built-in classes/interfaces
- #6490 DYNAMIC-INVOKE which returns an extent