| |
17
q = new VSQueryDefinition("<objectname>");
q.setPackageName("<packagename>");
VSMetaColumn vsmetacolumn = null;
VSMetaTable vsmetatable = new VSMetaTable("<objectname>");
vsmetacolumn = new VSMetaColumn("<attribname>", 12);
vsmetacolumn.setSize(50);
vsmetacolumn.setAlterability(true);
vsmetacolumn.setNullability(0);
vsmetacolumn.setComputed(false);
vsmetacolumn.setCaption("<attributecaption>");
vsmetatable.addColumn(vsmetacolumn);
/* Primary Key setzen */
vsmetatable.addUniqueKeyColumn("<objectname> Unique Key",
"<primarykey_attribute>");
vsmetatable.useQuotedIdentifier(false);
vsmetatable.setOptLock((short)2);
q.addTable(vsmetatable);
q.populateQCArray();
VSQueryDefinition vsquerydefinition =
(VSQueryDefinition)BusinessObjectImpl.getMetaQuery
("<objectname>", "<repositoryname>");
if(vsquerydefinition == null)
BusinessObjectImpl.addMetaQuery(q, "<repositoryname>");
else
q = vsquerydefinition;
vsmetatable.setDerivationType("<attribname>", 2);
}
}
Auf eine genaue Beschreibung der einzelnen Methoden muss hier leider aus Platzgrün-
den verzichtet werden. Die abstrakte Basisklasse wird jeweils von den Implementie-
rungsklassen konkretisiert.
5.3
Benutzerdefinierte Methoden
Oft reichen die zur Verfügung gestellten Klassen nicht aus, um eine spezifische Aufga-
be (effizient) zu lösen. Beispielsweise ist das Importieren von Daten aus einer Textdatei
nur durch eine speziell angepasste Importmethode möglich.
Um diesem Problem zu begegnen, besteht die Möglichkeit benutzerdefinierte Methoden
zu implementieren. Dieses kann auf verschiedene Arten erfolgen:
· in den Impl-Klassen der Geschäftsobjekte (s. Abb. 5.4).
· innerhalb einer beliebigen, dem Repository hinzugefügten, Java-Klasse.
· innerhalb einer Kindklasse von versata.vls.DataObject
|  |
|
| |
|
|