The sample application consists of 2 modules:
There's also a doc folder at this level which contains documentation for the whole application.
Each module contains a set of the following folders. This structure is a suggestion; there are no requirements in code for this structure.
The structure of the sample application is designed so that each component can be used (or reused) in relative isolation. Consumers of the application can thus use just the presentation layer or just the common infrastructure, or some combination of components.
The reference components are the building blocks used to construct the application. Each reference component contains code which corresponds to one of the OERA's 'blocks', such as the Presentation Layer, Common Infrastructure etc. This facilitates reuse and readability. In addition, there is a support component which contains a library of supporting code that is used throughout the sample application (and can be used in any application).
The reference components' base namespace/package is OpenEdge. This indicates that this is ABL code provided by OpenEdge. Core classes - such as the standard/default Object - belong to the Progress namespace. For example, Progress.Lang.Object.
OERI Reference Components
The AutoEdge|TheFactory sample application consists of the "actual" screens, entities and processes that comprise the specialised application, and is built on the foundation provided by the OERI/reference components. Whereas the reference components contains generalised code that can be used in any application, this module contains sample application-specific code. The sample application comprises of 2 main processes - building cars and ordering cars - and common, supporting code. The root package for the application is AutoEdge.Factory.
The root package for all build processes is AutoEdge.Factory.Build
The root package for the common, supporting code is AutoEdge.Factory.Common
The root package for the order processes is AutoEdge.Factory.Order
Coding conventionsOO patterns used