Some of the things you might wish to do with Melati.
org.melati.LogicalDatabase.properties file.
cd <model directory> java -cp c:\melati\src\main;c:\melati\target\melati.jar org.melati.poem.prepro.DSD <yourproject>.dsdThis will generate your java files, the getters and setters are in a subdirectory called generated, the files you should elaborate are in your model directory.
org.melati.LogicalDatabase.properties file
to reflect the new class name of your database.
In your DSD extend the TableInfo and/or ColumnInfo tables.
For example to add a FileNumber to every table and a FieldNumber to every column:
// ===========================
// Extend Poem metadata tables
// ===========================
table TableInfo extends org.melati.poem.TableInfo
(displayorder = 3010)
{
Integer fileNumber
(displayname = "File Number")
(description = "My File Number")
(nullable)
;
}
table ColumnInfo extends org.melati.poem.ColumnInfo
(displayorder = 3020)
{
Integer fieldNumber
(displayname = "Field Number")
(description = "My Field Number")
(nullable)
;
}
Note that you need to specify the displayorder or the table will be given a sequential displayorder.
You will need to add something like the following to your generated files
TableInfo
public TableInfo(Table table) {
org.melati.poem.TableInfo poemTableInfo = new org.melati.poem.TableInfo(table);
setName_unsafe(poemTableInfo.getName());
setDisplayname_unsafe(poemTableInfo.getDisplayname());
setDisplayorder_unsafe(poemTableInfo.getDisplayorder());
setDescription_unsafe(poemTableInfo.getDescription());
setCachelimit_unsafe(poemTableInfo.getCachelimit());
setSeqcached_unsafe(poemTableInfo.getSeqcached());
setCategory_unsafe(poemTableInfo.getCategory_unsafe());
}
TableInfoTable
protected org.melati.poem.TableInfo defaultTableInfoFor(Table table) {
return new TableInfo(table);
}
Melati needs an Integer representation of a table's primary key.
If you have a suitable candidate but its name is not id but intkey then subclass your chosen dbms class, such as SQLServer and provide a pair of methods:
public String melatiName(String name) {
if (name.equalsIgnoreCase("intkey"))
return "id";
return super.melatiName(name);
}
public String unreservedName(String name) {
if (name.equalsIgnoreCase("id"))
return "intkey";
return super.unreservedName(name);
}
org.melati.LogicalDatabase.properties file to select the
MSAccessDbmsClassbuild directory type
ant go