OOABL

Code, discussions, and whitepapers related to the use of object-oriented techniques in coding ABL applications.


OO classes in subversion

I've just uploaded the OO class stuff into subversion, so all the changes and enhancements that are coming can be integrated ;)

The subversion link is svn://oehive.org/oosockets/trunk

Let's see all those updates ...


OO Sockets in OpenEdge

A set of classes and programs to allow you to use client and server sockets in the Openedge ABL


OO Socket Sample Code

Using sockets with the 4gl and classes is an "interesting" exercise. This book contains examples of how to use classes and sockets for a client and server system. There are examples of how to use the client to connect to a web page and download the source. There is also a client / server system that uses XML to pass messages between the server and clients.

General Principles


Object Attribute Setter and Getter

I was playing with OOP/ABL in v10.1A, when I noticed my class unnecessarily growing because of repeatedly creating set/get methods. Some OOP language I've seen has one liner setter/getter. I thought there should be a way of having "one-liner" (well, not really) as well for 10.1A. :-)

So here goes..enhance if you must..

  /* =====================
      here's the meat!!! 
      includes/SetGet.i
     
      1 - variable name
      2 - data type
      ===================== */
     
  DEFINE PROTECTED VARIABLE {1} AS "{2}" NO-UNDO.
 
  METHOD PUBLIC "{2}" get{1}():

OO Wish List

OOABL “Wish List”

Revised 8 June 2007 to drop features added in 10.1B and include relevant items from the comments through that date.

Additions I would like to see to OOABL include (not in priority order):

• Object equivalents for primitives, e.g., Integer versus integer. This is important for providing methods that can handle both objects and primitives without requiring duplication of classes and methods;
• The ability to put objects into a temp-table and sort on their “values” instead of their handles, i.e., some implementation of the Comparable interface;


Replacing A Session SuperProcedure With A Class In OOABL

Progress Software has numerous references in documentation and whitepapers to the parallels between superprocedures and classes, including a fairly lengthy, if somewhat flawed example in the Getting Started: Object-Oriented Programming manual for 10.1A that shows two parallel examples, one worked using superprocedures and one worked using classes. However, what is not shown is an example in which a class replaces a superprocedure while retaining the original program structure as a set of procedures. For a local super-procedure, this substitution is simple because the class does not need to be accessible except from the procedure that instantiates it. For a session superprocedure, a different functionality is required because the internal procedures of the session superprocedure become a part of the name space of procedures that did not invoke the superprocedure.


Exception and Condition Handling Classes

One of the problems faced by ABL programmers for many years is the lack of a true exception handling mechanism in the language. By “exception handling”, we mean a mechanism by which a program encounters an error or unexpected condition then can communicate up the call stack with the purpose of:
1. Signaling that requested execution has not completed as expected;
2. Communicating any necessary information about the details of why this condition occurred; and
3. Providing a structure such that the condition is “handled” in a graceful fashion at an appropriate level in the code.


Collection and Map Classes for OOABL

In developing a foundation framework for Object-Oriented ABL, it seems natural to consider creating a set of Collection classes since they have a broad utility in OO design in other languages. It also seems natural to consider imitating the Collection classes in Java since that is a tried and true implementation into which there has been a considerable investment of thought and effort. However, while Java Collection classes need to use relatively low level constructs like arrays and hash tables for implementation, in OOABL we have temp-tables, which not only provide a very easy and flexible way of maintaining a set, but which has the significant advantage of being open-ended (unlike an array) and having an automatic extension to disk. This use of temp-tables is likely to lead to a number of appropriate differences between a good OOABL implementation and the Java implementation.


Object-Oriented ABL Techniques

Best practice, tips, and techniques for utilizing the object-oriented features in ABL starting with version OE 10.1

This group will serve as a focal point for discussions, examples, and projects intended to help people utilize the object-oriented language features which became available in OE10.1. The intention is to:
1) Develop established object-oriented design principles in a way that is consistent with a 4GL;
2) Provide OO-based contributions to OERA-compliant architectures; and
3) Assist in the utilization of OO techniques in the context of existing procedural code.

Contributions to this purpose will include white paper discussions, code fragments illustrating techniques, and complete model components to use in building applications.


Syndicate content