Home Page   We Generate Your Software.
Products Services Company Technology Demo Contact Site Map Search
The Somusar/SoProTech[tm] Booklet Series
Volume II

"somusar/SoProTech: A Sample Project"

Printer friendly


Contents
1. Introduction
2. Sample Project Entities
3. Sample Project Mold Kit
4. Project Conventions
5. Exercise 1: Adding Field currency to Entity country
6. Exercise 2: Adding Entity "company.ef"
7. Exercise 3: Changing all SQL Scripts and all HTML Forms
8. Further Reading
Appendix A - Project Entity Files
Appendix B - Library Entities

Chapter 3 - Sample Project Mold Kit

The mold kit of the sample project consists of molds to generate software in the following languages:

  • SQL

  • Java[tm]

  • C++

  • HTML, used both as user interface (UI) and as documentation (DOC) language

SQL is used for the DB layer, while Java[tm] and C++ are used for the LOGIC layer. The table below lists all molds of the sample project, including molds to generate intermediate files, which are files not directly required by the project development, but that are useful as an intermediate step in the software generation process.

Table 3 - Sample project molds

Mold Description
CORE/mold1-.toc Intermediate file, providing an expanded list, or table of contents, of the entity fields' features, including fields from embedded entities.
DB/mold1-.coll Intermediate file, providing a list of the DB collections defined by the entity, also checking for project-conformant collection names.
DB/mold2-.sql SQL script to create a database table as defined by collections DB.table and DB.pkey.
LOGIC/mold1-.coll Intermediate file, providing a list of the LOGIC collections defined by the entity, also checking for project-conformant collection names.
LOGIC/mold2-.java Java[tm] class source file, defining a Java[tm] class derived from collections LOGIC.class and LOGIC.parent.
LOGIC/mold3-.h C++ header file, defining a C++ class derived from collections LOGIC.class and LOGIC.parent.
LOGIC/mold4-.cpp C++ file to check compilability of generated C++ header file.
UI/mold1-.coll Intermediate file, providing a list of the UI collections defined by the entity, also checking for project-conformant collection names.
UI/mold2-.fview Intermediate file, providing an HTML user interface as defined by collection UI.full_view, contained in a ready-to-use HTML table to be embedded in an HTML form.
UI/mold3-.cview Intermediate file, providing an HTML table as defined by collection UI.compact_view. This table represents a Sisendel list at the UI layer level, and is to be embedded in the HTML user interface form of those entities that include a list of this entity in their UI.full_view.
UI/mold4-.html HTML edit/view form as defined by collection UI.full_view.
DOC/mold1-.html HTML documentation file about the entity, its collections and its functions.

The mold kit includes the following project customization scripts:

  • "project.hdr"

  • "project.trl"

  • "UI/section.hdr"

Finally, the "toolkit" of the mold kit consists of the utility scripts listed in the following table. Utility scripts allow mold makers to share and reuse repetitive or generic tasks, such as list processing routines, or multiple generation of similar blocks of software.

Table 4 - Sample project utility scripts

Script name Description
apply_filter Apply a Tefigel FILTER to a given intermediate generated file
check_collection Verify a collection name against the project conventions
cpp/get Generate a C++ "get" method
cpp/link Handle C++ mapping of Sisendel simple relationship
cpp/param Handle parameter generation for C++ methods
cpp/set Generate a C++ "set" method
cpp/type Handle C++ mapping of most Sisendel types
embed_subent Handle generation of embedded collection members from an embedded entity
ent_warning Project-customizable warning message routine
ets_process Handle generic generation of embedded entities
html/formbuttons Generate a row of buttons for an HTML form
html/formbutton Generate one HTML form button
html/membership Generate documentation about the collection memberships of an entity field
html/tablehdr Generate a standard table header for documentation purposes
indent Code-indenting script
iseven Boolean function: returns true if argument is an even number
java/get Generate a Java[tm] "get" method
java/link Handle Java[tm] mapping of Sisendel simple relationship
java/param Handle parameter generation for Java[tm] methods
java/set Generate a Java[tm] "set" method
java/type Handle Java[tm] mapping of most Sisendel types
link_subent Handle generation of embedded collection members from a related entity
list/add Add an item to a list
list/contains Boolean function: returns true if a given list contains a given item
list/contents Function: returns contents of a list
list/create Create a new list
list/delete Delete an existing list
list/print Print contents of a list
list/process Apply a given list item processor to a given list
print_item Print one item of a list
proj_package Convert an entity file path within a SoProTech project into a valid Java[tm] or C++ package name
sql/column Generate a column definition for an SQL database table
sql/pkey Add a given field to a list of primary keys for an SQL database table

[Previous chapter]    [Next chapter]    [Back to top]

http:// www.somusar.com  / doc  / booklets  / sample_proj  - Powered by SoProMach
Copyright © 2003-2012 Somusar - Trademarks - Legal - Privacy - Webmaster