|
Letzte
Bearbeitung dieses Dokuments: |
Voraussetzungen für das Verständnis dieses Dokuments:Grundkenntnisse in der Programmierung von Java (Klassen, Methoden, Schleifen). |
Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:Arbeitszeit:
|
In
diesem Dokument wird die Generelle Klasse für eine Liste mit
Business-Object (BO) der Klasse 'ProjectLanguage'
implementiert.
Diese Klasse und die Variationen für die
Server-Seite und die Client-Seite werden verwendet wenn für die
Selektion von BO Kriterien verwendet werden, die mehrere BO als
zutreffend auswählen könnten.
Einen Überblick über die verschiedenen Klassen zur Verwaltung von persistenten Daten finden Sie im Dokument Business-Object – Überblick über die Funktion zum Abfragen und Speichern von Daten.
Einen
Überblick über die Aufteilung der Daten und
Funktionalitäten eines BO in verschiedene Klassen finden Sie im
Dokument Business-Object
– Realisierung mit Java-Klassen.
Eine
detailliertere Beschreibung der Aufgabe einer Generellen BO-Klasse
finden Sie im Dokument Business-Object
– General Class (Generelle Klasse).
Voriger Schritt: DataBase-Access Klasse für eine Liste von Datensätzen aus der DB-Tabelle 'ProjLang' (DBA-Set)
Vorbemerkung
Vorbedingungen
Generelle
BO-Set-Klasse eröffnen
Code
für die Generelle BO-Set-Klasse
*
Von Basisklasse erben
*
Importieren der Bibliotheken
*
Methode zum Kopieren der Werte eines Objektes der gleichen
Klasse
Gesamter Code am Ende
des Schrittes
*
Klasse
JS_ProjAssist_ProjectLangugae_BO_Set
Weitere
Schritte und verwandte Dokumentation
Nächster Schritt: Server-Side BO-Set Klasse für eine Liste mit 'ProjectLanguage' Business-Objects
Obwohl
Eclipse in 'deutscher Version' installiert werden kann, sind
die Abbildungen in diesem Dokument mit der 'english Version'
erstellt. |
Für
die 'Massenproduktion' von Generellen Klassen für BO-Set wurde
ein Muster-Code entwickelt, aus dem durch Ersetzen von 'Platzhaltern'
einfach und vor allem schnell bedarfsgerechte BO-Klassen
implementiert werden können.
Der Muster-Code und die
Anleitungen zur Adaption sind im Dokument Muster-Code
für ein BO-Set (Liste mit Business-Objects)
beschrieben.
Der
in diesem Tutorial vorgestellte Code folgt der Struktur des
Muster-Codes – dadurch wird das Verstehen und Adaptieren
leichter.
Voriger Schritt: DataBase-Access Klasse für eine Liste von Datensätzen aus der DB-Tabelle 'ProjLang' (DBA-Set) dieses Tutorials abgeschlossen.
Überblick über die theoretschen Grundlagen aus den Dokumenten Business-Object – Überblick über die Funktion zum Abfragen und Speichern von Daten und Anleitung in Business-Object – Realisierung mit Java-Klassen. durchgelesen und verstanden.
Generelle
BO-Set-Klasse eröffnen
Diese
Klasse wird gleichen Java-Package erstellt wie die generelle
BO-Klasse.
Das
Erstellen einer neuen Klasse wurde bereits mehrmals im Detail und mit
Abbildungen beschrieben.
Aus diesem Grund wird er Vorgang nur mehr
in Stichworten beschrieben.
Wenn sie unsicher sind, nehmen Sie
bitte die ausführliche Anleitung unter JavaScout
ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) –
DataBase-Access (DBA) Klasse für DB-Tabelle 'ProjLang'
>
DBA-Klasse
eröffnen
als
Richtlinie.
Um
eine neue Java-Klasse zu eröffnen wird mit der rechten
Maustaste das Project (Java_Fatclient_01) angeklickt und aus dem
Kontext-Menu
>New>Class
ausgewählt.
Im darauf hin erscheinenden Fenster (New Java Class) wird
Das 'Package' (js_projassist.bo) festgelegt.
Der
Name der Klasse (JS_ProjAssist_ProjectLanguage_BO_Set)
festgelegt.
ProjectLanguage
ist die Bezeichnung des BO (Business-Object).
Folgende
Auswahl-Möglichkeiten werden de-markiert:
[ ] public
static void main(String[] args)
[ ] Constructors
from superclass
[ ] Inherited abstract
methods
Die anderen bereits vorgegebenen Werte werden nicht verändert.
Durch
Anklicken der Schaltfläche
[ Finish ]
wird
die Datei für den Quell-Code der Klasse angelegt.
Code
für die Generelle BO-Set-Klasse
Der
Code für die Generelle BO-Set-Klasse beschränkt sich auf
das Kopieren von Daten und benutzt dazu weitestgehend die
Funktionalität der Klasse
JS_ProjAssist_ProjectLanguage_BO
so
wie im Dokument
JavaScout
ProjectAssist, Task-Frame Grundlagen (Java_Fatclient_01) –
General BO (Business-Object) Klasse für 'ProjectLanguage'
>
Code
für die GenerelleBO-Klasse
beschrieben.
Der
gesamte Code ist unter Klasse
JS_ProjAssist_ProjectLanguage_BO_Set
gelistet
und mit Kommentaren versehen.
Aus diesem Grund wird anschließend
der Code nicht mehr im Gesamten wiederholt sondern nur mehr
Erläuterungen gegeben.
Von
Basisklasse erben
package
js_projassist.bo;
/*
*
Package mit der Basisklasse für ein BO-Set. */import
js_base.bo.JSBS_BO_Set;
.
. . . . . . .
. . . . . . . ./*
*/
public
class
JS_ProjAssist_ProjectLanguage_BO_Set
extends
JSBS_BO_Set
{
In
der Basisklasse JSBS_BO_Set
ist jene Variable des Typs 'Vector' definiert, in dem die
selektierten Datensätze (für diese Klasse vom Typ
'JS_ProjAssist_ProjectLanguage_BO') nach dem Abschluß einer
Methode enthalten sind.
Mit den obigen Anweisungen wird die
Bibliothek, in der diese Klasse enthalten ist, importiert und von
dieser Klasse 'geerbt'.
Importieren
der Bibliotheken
package
js_projassist.bo;
/*
*
Package mit der Basisklasse für ein BO-Set. */import
js_base.bo.JSBS_BO_Set;
/*
*
Package mit der BO-Klasse, dessen Objekte in der Liste dieser Klasse
enthalten sind. */import
js_projassist.bo.JS_ProjAssist_ProjectLanguage_BO;
/*
*/
public
class
JS_ProjAssist_ProjectLanguage_BO_Set
extends
JSBS_BO_Set
{
/*
Neben
der Bibliotheken mit der geerbten Basisklasse ist nur die Bibliothek
mit der zugehörigen
Generellen BO-Klasse erforderlich.
Methode
zum Kopieren der Werte eines Objektes der gleichen Klasse
Diese
Methode wird insbesondere dann benötigt, wenn die Daten zwischen
'Client-Side' und 'Server-Side' übertragen werden müssen.
In
dieser Methode wird für jedes BO in der zu kopierenden Liste
(implementiert als Java-Typ 'Vector') ein neues Objekt 'konstruiert',
dann die Methode der zugehörenden Generell BO-Klasse zum
Kopieren aufgerufen und das neue BO in die Liste (Java-Typ 'Vector')
eingefügt.
Zuerst
wird festgestellt, wie viele BO in der Liste des als Parameter
übergebenen Objektes (von der gleichen Klasse) enthalten
sind.
Gleich anschließend wird auch eine Variable für
den Index zum 'Adressieren' der Objekte innerhalb der Liste
definiert./*
* METHODEN *//* ---------------------
* METHODE zum Kopieren der Liste mit den BO eines
anderen Objekts dieser Klasse
* in diese Klasse.
*/
public
void
copyFromJS_ProjAssist_ProjectLanguage_BO_Set(
JS_ProjAssist_ProjectLanguage_BO_Set
parmJS_ProjAssist_ProjectLanguage_BO_Set)
{
/*
* Größe des Vectors mit den BO (der in der
geerbten Basisklasse definiert ist) feststellen
* und
Index zum Durchsuchen definieren. */
int
locintVectorSize =
parmJS_ProjAssist_ProjectLanguage_BO_Set.
vecRecordSet
.size(
);
int
locintVectorIndex
;
.
. . . . . . .
. . . . . . . .
Zur
Sicherheit wird die Liste in dem Objekt, auf das die BO kopiert
werden, geleert.
.
. . . . . . .
. . . . . . . ./*
* Vector
mit der Liste der BO in dieser Klasse leeren.
*/
this
.
vecRecordSet
.removeAllElements();
.
. . . . . . .
. . . . . . . .
In
einer
for
-Schleife
wird jedes BO mit den zu kopierenden Daten 'adressiert'.
Damit der
Code leichter lesbar wird, wird eine lokale Variable (locstructBO
)
definiert die auf das BO innerhalb der Liste (Vector) verweist.
.
. . . . . . .
. . . . . . . ./*
* Mit
einer for-Schleife alle BO in der Liste des als Parameter übergebenen
Objekte durchgehen. */
for
(
locintVectorIndex
= 0;
locintVectorIndex
< locintVectorSize
;
locintVectorIndex++
)
{
/*
* Das
durch den Index gewählte BO aus der Liste durch eine lokale
Variable leichter
* 'greifbar' machen.
*/
JS_ProjAssist_ProjectLanguage_BO
locstructBO
=
(JS_ProjAssist_ProjectLanguage_BO)
parmJS_ProjAssist_ProjectLanguage_BO_Set.vecRecordSet
.elementAt(locintVectorIndex);
.
. . . . . . .
. . . . . . . . }
Ein
neues BO wird 'konstruiert' und mit den zu kopierenden Daten
versorgt.
Für das Kopieren
(locstructBO_New.copyFrom
JS_ProjAssist_ProjectLanguage_BO(locstructBO)
)
wird die Methode der zugehörigen Generellen BO-Klasse
(
JS_ProjAssist_ProjectLanguage_BO
)
verwendet.
.
. . . . . . .
. . . . . . . ./*
* Neues
BO 'konstruieren' und die Methode der BO-Klasse zum Kopieren der
Variablen-Werte
* aufrufen.
*/
JS_ProjAssist_ProjectLanguage_BO
locstructBO_New
=
new
JS_ProjAssist_ProjectLanguage_BO();
locstructBO_New.copyFrom
JS_ProjAssist_ProjectLanguage_BO(locstructBO);
/*
* Das
'neue' BO in die Liste dieses Objekts einfügen.
*/
this
.
vecRecordSet
.addElement(
locstructBO_New
);
.
. . . . . . .
. . . . . . . .
Am
Ende der Methode werden noch der Status-Code und die Status-Nachricht
(Message) kopiert.
.
. . . . . . .
. . . . . . . ./*
* Status-Code
und erklärenden Zusatz-Text in dieses Objekt übernehmen.
*/
this
.
StatusCode
=
parmJS_ProjAssist_ProjectLanguage_BO_Set.
StatusCode
;
this
.
StatusMsg
=
parmJS_ProjAssist_ProjectLanguage_BO_Set.
StatusMsg
;
}
Gesamter
Code am Ende des Schrittes
package
js_projassist.bo;
/*
*
Package mit der Basisklasse für ein BO-Set. */import
js_base.bo.JSBS_BO_Set;
/*
*
Package mit der BO-Klasse, dessen Objekte in der Liste dieser Klasse
enthalten sind. */import
js_projassist.bo.JS_ProjAssist_ProjectLanguage_BO;
/*
*/
public
class
JS_ProjAssist_ProjectLanguage_BO_Set
extends
JSBS_BO_Set
{
/*
* METHODEN *//* ---------------------
* METHODE zum Kopieren der Liste mit den BO eines
anderen Objekts dieser Klasse
* in diese Klasse.
*/
public
void
copyFromJS_ProjAssist_ProjectLanguage_BO_Set(
JS_ProjAssist_ProjectLanguage_BO_Set
parmJS_ProjAssist_ProjectLanguage_BO_Set)
{
/*
* Größe des Vectors mit den BO (der in der
geerbten Basisklasse definiert ist) feststellen
* und
Index zum Durchsuchen definieren. */
int
locintVectorSize =
parmJS_ProjAssist_ProjectLanguage_BO_Set.
vecRecordSet
.size(
);
int
locintVectorIndex
;
/*
* Vector
mit der Liste der BO in dieser Klasse leeren.
*/
this
.
vecRecordSet
.removeAllElements();
/*
* Mit
einer for-Schleife alle BO in der Liste des als Parameter übergebenen
Objekte durchgehen. */
for
(
locintVectorIndex
= 0;
locintVectorIndex
< locintVectorSize
;
locintVectorIndex++
)
{
/*
* Das
durch den Index gewählte BO aus der Liste durch eine lokale
Variable leichter
* 'greifbar' machen.
*/
JS_ProjAssist_ProjectLanguage_BO
locstructBO
=
(JS_ProjAssist_ProjectLanguage_BO)
parmJS_ProjAssist_ProjectLanguage_BO_Set.vecRecordSet
.elementAt(locintVectorIndex);
/*
* Neues
BO 'konstruieren' und die Methode der BO-Klasse zum Kopieren der
Variablen-Werte
* aufrufen.
*/
JS_ProjAssist_ProjectLanguage_BO
locstructBO_New
=
new
JS_ProjAssist_ProjectLanguage_BO();
locstructBO_New.copyFrom
JS_ProjAssist_ProjectLanguage_BO(locstructBO);
/*
* Das
'neue' BO in die Liste dieses Objekts einfügen.
*/
this
.
vecRecordSet
.addElement(
locstructBO_New
);
};/*
* Status-Code
und erklärenden Zusatz-Text in dieses Objekt übernehmen.
*/
this
.
StatusCode
=
parmJS_ProjAssist_ProjectLanguage_BO_Set.
StatusCode
;
this
.
StatusMsg
=
parmJS_ProjAssist_ProjectLanguage_BO_Set.
StatusMsg
;
}}
Dokument |
Inhalt |
Im
nächsten Schritt des Tutorials wird die Server-Side Klasse
des BO-Set (Liste mit Business-Objects) für Projekt und
Sprache implementiert. |
|
Muster-Code für ein BO-Set (Generelle Klasse für ein Business-Object) |
In diesem Dokument wird ein Muster-Code für ein BO-Set vorgestellt und die durchzuführenden Adaptierungen beschrieben. |
In diesem Schritt des Tutorials wurde beschrieben, wie die zugehörige Generelle BO-Klasse entwickelt wird. |