UML Elements to EGL Transformation

The UML to EGL transformation recognizes a limited set of UML model elements to perform the transformation. The following list describes the recognized elements and the output generated during the transformation for the element.

Package
All UML packages result in the creation of an EGL package. The model itself is a package, so a top level package based on the name of the model is created. Additionally, if there are nested UML packages, each will cause an EGL package to be generated.
Class
A class in the UML model represents a database table. For each class in the model, the following are created:
  • EGL SqlRecord
  • A table definition in the DDL created. This definition is located in the <project>/scripts/data/createTables.sql directory, where <project> is the location of the project.
  • A library or service containing functions for performing create, read, update, and delete operations on the class.
  • A search/list JSP and corresponding Pagehandler functions that provide search operations on the database table and view lists of results.
  • A detail JSP and corresponding Pagehandler functions for displaying the details of a specific database row. Add, update, and delete operations can also be performed through the detail pages.
Operation
From each operation element a function stub in the data access library is generated and each operation parameter becomes an EGL parameter. An SqlRecord of the containing class's type is also passed as a parameter, in order to allow the operation to be performed on a specific instance of the SqlRecord.
Because the function stub does not contain any logic code, you must complete this function after the transformation.
Attribute
Each attribute element in the UML model represents a database column. For each Attribute, the following is generated:
  • An EGL SqlRecord Field
  • A column definition in the DDL.A UML class must represent a normalized database table. If not, multiplicities greater than one are ignored.
.
Association
An association element represents the relationship between two end classes. Associations with more that two end classes are ignored during the transformation. The following is generated for an association:
  • Foreign key definitions in the DDL.
  • Columns inserted into the database tables representing the association ends.
The type of association affects the specifics for what is generated for an association element. There are three types of associations:
One-to-one associations
Transformation of an one-to-one association results in the insertion of the key columns from one of the participating tables into the other table. Associated rows are accessible through the generated detail pages. Association end navigability determines whether the relationship is exposed in the detail JSPs.
One-to-many associations
Transformation of one-to-many associations results in the insertion of the key columns from the multiplicity one side into the table representing the multiplicity many side. Data access functions are generated to allow navigation of these associations. Exposure of the relationship within the detail JSP is determined by the navigability of the Association ends.
Many-to-many associations
Transformation of many-to-many associations result in the creation of an associative table and corresponding SqlRecord. The table's columns consist of the keys from the associated tables. Data access routines are generated to allow manipulation of the associative table. The relationship is exposed through the UI as determined by the navigable attributes of the associated classes.
Enumeration
The enumeration element defines the possible values for a data type or property. For each enumeration element in the UML model, the following EGL elements are generated:
  • A library that contains the following:
    • A constant integer value for each enumeration literal.
      • If transforming from a UML model, you can specify the values for each enumeration literal.
      • If transforming an existing database, the transformation creates a named integer and assigns it a value based on the ordinal position of the enumeration literal within the enumeration.
    • A String array consisting of the names of the enumeration literals. This array is used to display enumerated values detail JSP. A selectOneMenu is used to allow users to select a value for the enumerated column.
  • An EGL DataItem of type INT that will be used as the field type in SqlRecords. Database columns based on enumeration types will be defined in the table as INTEGER.

Feedback