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.