Doco Home Tools Home
dev_conf
CORE PO DO IDS QUERY 

Platypus Tools: dev.conf format

This file, and the files it links to in the CORE.PO and CORE.XTRACONF sections, contains a very dense description of the application. It contains information about the prototype HTML, the database schema and how the dynamic content is computed. The Platypus tools use the this information to generate skeleton code for the presentation and business layers. (The data layer is generated by the DODS tool.)

General Layout and Syntax

The configuration information is stored in several "*.conf" files. The *.conf files may be in several directories. One of the *.conf files is the root config file. It is called "dev.conf", and is in the "$(ROOT)" directory.

The separation of the "*.conf" files into several files does not affect the information in them. They can be concatenated into one file without affecting the configuration information. Their separation into multiple files is simply for the convenience of the tools which generate and update the config files (especially 'make'), and for human readability.

However, some information must be in the root config file, rather than in the other files. Specifically, the "CORE" section must be in this file. More details are below.

The config files are in the now standard hierarchical name-value pair format. All names are fully specified, using "." to separate hierchical layers. Names are case sensitive. Blank lines, and lines beginning with "#", are ignored. The order of lines is not significant -- the file may be sorted without affecting the configuration information.

We intend, as soon as possible, to migrate this configuration to XML.

Outermost Section Names

The names in the outermost section of the hierarchy are structured as follows. All special names are in upper-case. They are listed below.

CORE
section which must be in the root config file.
PO
section contains presentation objects, in Enhydra parlance.
DO
section contains details about the tables, columns, etc used in the DO layer.
IDS
section describes values passed from BOs to POs. This section has the same format as the IDS section of a PO. NOTE: Information about an HTML node that appears in this section had better be correct for that node in *all* POs.
QUERY
section details the SQL queries in the system.

Core Section Names

The CORE section contains the following names:

PO
section contains the names and directories of all POs. For example, the Welcome PO, in the presentation directory, would have name 'CORE.PO.Welcome'. A Sales PO, in the reports directory, would have name 'CORE.PO.reports.Sales'. The value associated with a PO is its directory (relative to "$(ROOT)/presentation") and basename -- eg "reports/Sales".
XTRACONF
section describes where the parts of this configuration are stored. It lists all sections which are not stored in "dev.conf" or the PO conf files. Thus, if a section "USERS.Frodo" is in file "../home/Frodo.conf", then the name "XTRACONF.USERS.Frodo" contains the value "../home/Frodo.conf".
APPLICATION_NAME
value is the name of the application.
BASE_PACKAGE_NAME
value is the base java package name for the application. For example, if this is set to foo, then code will exist in packages foo.business, foo.data, etc.
TEMPLATES [Default AppTemplate]
value is name of HTML DOM file containing templates needed by Platypus, such as the HTML needed for UserExceptions. Note: this may be overridden in each PO.

Presentation Object Section Names

The PO section is described here.

The IDS section, which may occur within a PO section, is described here.

Data Object (DO) Section Names

In version 1.0 of Platypus, the DO section must be hand coded. An upgrade to DODS is planned to generate this information.

DBMS
The DBMS system being used, e.g. PostgreSQL or Oracle. This must match exactly a DBMS allowed by DODS.

TABLE.TableName [section]
The Java class name of the table, e.g. if the class generated is JobDO, then the TableName is 'Job'.

TABLE.TableName.SQL_NAME
The SQL table name for this table.

TABLE.TableName.COLUMN.ColumnName [section]
The ColumnName within the table.

TABLE.TableName.COLUMN.ColumnName.DODS_TYPE
The DODS type for this column, see the types.conf file under <DODS installation>/dods/data directory for more information.

TABLE.TableName.COLUMN.ColumnName.SIZE
The size of this column, if relevant

TABLE.TableName.COLUMN.ColumnName.DEFAULT_VALUE
The default value, if relevant

TABLE.TableName.COLUMN.ColumnName.NULL_ALLOWED
Whether a null value is allowed

TABLE.TableName.COLUMN.ColumnName.UNIQUE
Whether this column is unique.

TABLE.TableName.COLUMN.ColumnName.REFERENCES
If this column refers to a field in another table, then this contains the referenced table. The value is the Java table name

TABLE.TableName.COLUMN.ColumnName.PRIMARY_KEY
If this column is the Primary Key, then this should be set to true. If not, then it doesn't need to be set, or can be set to false.

TABLE.TableName.INDEX.IndexName
The value of this index is used to determine what the index is based on.