Neben den Angaben des Namens, des Typs und der Tabelle aus der ein Attribut berechnet wird, gibt es weitere Möglichkeiten ein Attribut zu bestimmen. Hierfür stehen weitere Spalten zur Verfügung.
Die folgende Tabelle zeigt eine Übersicht aller Spalten.
Spalte | Bedeutung |
---|---|
Name | Der Name des Attributes |
Type | Der Attributtyp |
Object | Das Objekt zu dem das Attribut gehört |
Function | Eine Funktion aus der sich der Attributwert berechnet |
Table | Die Regeltabelle aus der sich der Attributwert berechnet |
Enum | Das Attribut ist ein Enum |
Dummy | Ein Dummy-wert, wenn das Attribut nicht berechenbar ist |
Der Name des Attributs. Der Name darf kein Leerzeichen und keine Sonderzeichen enthalten. Ausnahme ist der Unterstrich.
Hier wird der Datentyp des Attributes angegeben. Mögliche Typen sind: integer (Ganzzahl), string (Text), real (Gleitkommazahl), date (Datum), bool (Wahrheitswerte)
Jedes Attribut gehört zur Klasse Rules. Ein Attribut kann auch zu einer andere Klasse gehören. Hierzu trägt man den Name der Klasse in die Spalte Object ein. Das Objekt wird in der Klasse Rules gespeichert.
private ObjName objName;
...
public ObjName getObjName() {
return objName;
}
Folgt dem Objektnamen ein Stern (*), dann wird ein Array von Objekten an Rules gespeichert.
private ObjName[] objName;
...
public ObjName getObjName(int i) {
if (objName == null) {
objName = new ObjName[i + 1];
for (int o = 0; o < i + 1; o++) {
objName[o] = new ObjName(this,o);
}
} else if (i >= objName.length) {
int l = objName.length;
objName = Arrays.copyOf(objName, i + 1);
for (int o = l; o < i + 1; o++) {
objName[o] = new ObjName(this,o);
}
}
return objName[i];
}
public int getObJNameSize() {
if (objName == null) {
return 0;
}
return objName.length;
}
Der Tabellenname der Regeltabelle durch den der Wert des Attributes berechnet wird.
Diesen Wert liefert das Attribut, wenn es nicht berechnet werden kann. Hierdurch werden null Pointer vermieden.